それで、SML の課題があり、始めるのに少し助けが必要です。
問題はこうなる
バイナリ ツリーのサイズを返す 'a btree -> int 型の関数 btree_size を記述します。(バイナリ ツリーのサイズは、バイナリ ツリーの要素の数です)。たとえば、btree_size (Node (Leaf, 1, Node (Leaf, 2, Leaf))) は 2 を返す必要があります。関数は提供された btree_reduce 関数を使用する必要があり、最大 3 行の長さにする必要があります。
btree_reduce関数はこれ
(* A reduction function. *)
(* btree_reduce : ('b * 'a * 'b -> 'b) -> 'b -> 'a tree -> 'b) *)
fun btree_reduce f b bt =
case bt of
Leaf => b
| Node (l, x, r) => f (btree_reduce f b l, x, btree_reduce f b r)
btreeを受け取り、reduce関数を使用してツリーのサイズを取得するbtree_size関数を作成するにはどうすればよいですか?