Нам дано дерево с типом:
type ('nonterminal, 'terminal) parse_tree =
| Node of 'nonterminal * ('nonterminal, 'terminal) parse_tree list
| Leaf of 'terminal
и формой:
let t = (Node ("+", [Leaf 3; Node ("*", [Leaf 4; Leaf 5])])
И нас просят написать функцию, которая принимает дерево в качестве аргументаи возвращает список листьев, которые он находит (форма слева направо), поэтому оставляет t = [3; 4; 5]
Теперь это то, что у меня есть, но это дает мне ошибку, и я не уверен, какя должен подойти к этой проблеме:
let rec getleaf tree =
match tree with
|Leaf a -> [a]
| Node (a, Leaf (h)::t) -> h::getleaf t;;
Заранее спасибо.