Написах функция, която намира височината на двоично дърво (т.е. # възли по най-дългия път от корена до листа).
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
Какво не е наред с моя тестов случай?
Благодаря!