Witam, to jest mój pierwszy wpis w Stack Overflow i napotkałem problem przy próbie skonstruowania typu w OCamlTypy rekursywne w OCaml?
Próbuję skonstruować drzewo typów, które ma węzły/liście/etc. To jest to, co do tej pory miałem.
type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a * tree) | ....
Mój węzeł powinien być typem, który zawiera jego nazwę i inne drzewo jako krotkę. Ale kiedy próbowałem to skompilować, to drzewo wymagało dwóch argumentów. Tak więc próbowałem:
type ('a, 'b) tree = Empty | Leaf of 'b | Node of ('a * tree ('a*'b))
i nadal otrzymywałem błąd. Czy zauważyłeś coś, co robiłem źle? Dzięki!
Okazało się, że moja składnia była po prostu nieprawidłowa. Powinien to być węzeł ("a * (" a, "b) drzewo) – Brian
Zgadza się. Grzecznie byłoby zaakceptować odpowiedź Gasche'a, ponieważ odpowiada na twoje pytanie. Zastanawiam się, czy jesteś pewny, że chcesz odrębne typy dla liści i węzłów wnętrza? –