2016-11-15 14 views
1

のは、私は次のツリーデータ型を持っているとしましょう:データ型変数の中の値を取得するには?

ここ
datatype 'a tree = Empty | Node of 'a * 'a tree * 'a tree; 
val x = Node(10, Node(20, Empty, Empty), Node(30, Empty, Empty)); 

、xはint型の木の変数です。私が知りたいのは、与えられた木のさまざまな部分を解剖して評価する方法です。変数x?この機能では例えば

fun add(tree) = .... 
add(x); 

は、どのように私は正確にこれらの値をつかむだろう、関数がツリーのノード内のすべての値を追加すると言いますか?

#i(x, y, z, ......) 

i番目のインデックスで要素を取得するには、次のようにします。このタイプの機能は、再帰的なデータ型でどのように機能しますか?

答えて

1

再帰的なデータ型から値を取得するには、再帰的な関数を書くだけです。

fun getValues(Node(v,l,r) : 'a tree) : 'a list = getValues(l) @ [v] @ getValues(r) 
    | getValues(Empty) = [] 
関連する問題