2

ML で新しいデータ型を定義するにはどうすればよいですか。newList を想定して、要素 'a (int、real など) のリスト、ネストされたリストで構成できるようにします。たとえば、私の型 'a が int の場合、値は: [1]、[1,[4]]、[1,[5]、[[5]]] など。

EDITED 申し訳ありませんが、例に 1 がありません。int のリストが異なります。削除しました

4

2 に答える 2

1

それはいけません。リスト内のすべての要素は同じ型でなければなりません。あなたの例では、いくつかの要素はintタイプであり、いくつかはタイプint listです。

このツリーのようなものを作成することはできますが、構文はあまり使いやすいものではありません :-)

datatype 'a multiList = Empty
                      | List of 'a multiList list
                      | E of 'a;

val x = List [E 1, List [E 1, List [E 4]], List [E 1, List [E 5]]];
于 2010-12-16T19:00:08.717 に答える
1
datatype 'a multiList = E of 'a
                      | List of 'a multiList list

あなたの例は次のとおりです。

List [E 1]

List [E 1, List [E 4]]

List [E 1, List [E 5], List [List [E 5]]]
于 2010-12-17T07:00:02.110 に答える