У меня есть это определение деревьев, данное в OCaml
type 'a tree = Node of 'a * 'a tree list;;
let rec fold_tree f (Node (x,l)) =
f x (map (fold_tree f) l);;
Может кто-нибудь помочь мне, как я могу написать, например, предзаказ при использовании fold_tree (без дополнительной рекурсии). Я знаю, как я могу сделать это без fold_tree, но это делает меня проблемой
Пока у меня есть это:
let preorder t =
fold_tree (fun x l ->
(fold_left(fun acc h -> h@acc) x l ) ) t;;
но ocaml считает t списком деревьев ...