У меня есть задание, и я не могу понять, как сделать один вопрос.
Вот что я должен сделать:
Напишите функцию, которая собирает все элементы в дереве T, которая удовлетворяет свойству p и возвращает его. Пройдите через дерево в порядке.
Найти все элементы в BST, удовлетворяющие f, используя продолжения успеха.
Я сделал следующее:
datatype 'a tree =
Empty | Node of (int * 'a) * 'a tree * 'a tree
fun find_all f Empty cont = cont()
| find_all f (Node(x, l, r)) cont = if (f x) then find_all (f l (fn x => x::cont())) @ find_all (f r (fn x => x::cont()))
else find_all (f l (fn () => cont())) @ find_all (f r (fn () => cont()));
Я не понимаю, почему это не работает ...