私はクラスでMLを勉強していますが、宿題の問題にぶつかりました。私は昨日一日中検索をしましたが、ほとんど進歩がなく、クラスでこれについて話しませんでした。皆さんが私を助けてくれることを願っています。
私たちは与えられます:
datatype which = STRING of string | INT of int
パート1。データがツリーのリーフにのみwhichTree
あるタイプの値を含むバイナリツリーにちなんで名付けられた別のデータタイプを作成する必要があると言われています。which
パート2。intがツリー内にあるかどうかに基づいて、trueまたはfalseを返すwhichSearch
型を持つ関数を作成する必要があります。whichTree -> int -> bool
これは私がこれまでに持っているものです:
datatype which = STRING of string | INT of int;
datatype whichTree = Empty | Node of int*whichTree*whichTree;
val t1 = Node(6, Node(4,Empty,Empty), Node(15, Node(11,Empty,Empty), Node(24,Empty,Empty)));
val t2 = Node(157,Empty,Empty);
val t3 = Node(102,t1,t2);
fun whichSearch (i, Empty) = false
| whichSearch (i, Node(entry, left, right)) =
if i = entry then true
else whichSearch (i, left)
orelse whichSearch (i, right);
私が今直面している問題はこれです:
- My
whichTree
にはタイプが含まれていませんwhich
。どうすれば修正できるかわかりません。 - 私は自分
whichSearch
の型の関数を持っているべきですwhichTree -> int -> bool
が、それはint * whichTree -> bool
問題を修正する方法を見つけようと取り組んでいます。検索するにはi
inの値を指定する必要があるため、これを修正する方法がわかりません。whichSearch
私はこれを探していますが、どんなヒントも素晴らしいでしょう。
誰か助けてもらえますか?もしそうなら、ありがとう!そして、すでに応答してくれた人たちに感謝します。