1
は三木の種類が定義されます。私は、関数は三元ツリーに一致するように& foldlのをマップ変更する必要が三元ツリー法として標準的なML
datatype ’a tree =
Leaf of ’a
| Node of ’a tree * ’a tree * ’a tree
...
fun tree_map (f : ’a -> ’b) (t : ’a tree) : ’b tree =
f,nil) = nil
| map (f,x::xs) = f(x) :: (map (f,xs))
fun tree_foldl (f : ’a * ’a -> ’a) (n: ’a) (t : ’a tree) : ’a =
(f,ie,nil) = ie
| foldl (f,ie,x::xs) = foldl (f, f(x,ie), xs);
私はこれを知っていますおそらく単純な変更ですが、私は論理の周りに私の頭を包んでいるように見えることはできません。私はそれがバイナリツリーのためにどのように異なるのか理解していません...どんなポインタ?