ocaml type constructor arguments
-
12-12-2019 - |
Question
I defined an AVL tree as such, with 'a -> 'a -> int being the comparison function
type 'a t = Empty of ('a -> 'a -> int)
| Node of 'a * 'a t * 'a t * ('a -> 'a -> int)
I'm trying to use this AVL module to implement a priority queue in a separate module.
type 'a t = Queue of (Avl.t * int)
But when I try to compile I get this error:
Error: The type constructor Avl.t expects 1 argument(s),
but is here applied to 0 argument(s)
What argument is it talking about and what's should the syntax be in the queue type?
La solution
Your AVL tree is parameterized by the type in the nodes ('a
). So you should be able to say
type 'a t = Queue of ('a Avl.t * int)
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow