Я написал функцию, которая находит высоту бинарного дерева (т.е. количество узлов на самом длинном пути от корня до листа).
let rec height (t: 'a tree) : int =
begin match t with
| Empty -> 0
| Node (l, v, r) -> 1 + max (height 1) (height r)
end
Я считаю, что моя функция верна, но синтаксическая ошибка, которая возникает при запуске моего теста, говорит: «Эта функция применяется к слишком большому количеству аргументов; возможно, вы забыли «;».
Это мой тестовый случай
let test () : bool =
height Node(Node(Empty, 1, Empty), 3, Node(Empty, 2, Node(Empty, 4, Empty))) = 3
;; run_test "Node(Node(Empty, 1, Empty), 3, Node(Empty, 2, Node(Empty, 4, Empty)))" test
Что не так с моим тестовым случаем?
Спасибо!