2

私はまだこれに問題があるので、もっと助けを求めることができます。

私たちは与えられます:

datatype which = STRING of string | INT of int

パート1。データがツリーのリーフにのみある「which」タイプの値を含むバイナリツリーに対して、whichTreeという名前の別のデータ型を作成する必要があると言われています。

私はこれが正解だと思いました:

datatype whichTree = Empty | Leaf of which | Node of whichTree*whichTree;

私が走ったときとは違うことがわかりました:

val inttree = Node(Leaf(1), Leaf(2));

エラーが発生します。

私はこのようなことができることを理解することができました:

datatype 'a whichTree = Empty | Leaf of 'a | Node of 'a whichTree * 'a whichTree;

また

datatype whichTree = Empty | Leaf of int | Node of whichTree*whichTree;

しかし、私の最初のケースではデータ型名に'aが含まれており、他のケースでは、どちらを使用して文字列またはintを指定できる必要があるのか​​、Leafofintと言っているのでどちらも正しくないようです。

誰かがそれの正しい答えを教えてもらえますか、それとも私に助けを提供できますか?

4

1 に答える 1

4

の定義は正しいですが、:whichTreeにコンストラクタがありません。whichinttree

val inttree = Node(Leaf(INT 1), Leaf(INT 2))
于 2010-11-05T03:41:35.833 に答える