ML で新しいデータ型を定義するにはどうすればよいですか。newList を想定して、要素 'a (int、real など) のリスト、ネストされたリストで構成できるようにします。たとえば、私の型 'a が int の場合、値は: [1]、[1,[4]]、[1,[5]、[[5]]] など。
EDITED 申し訳ありませんが、例に 1 がありません。int のリストが異なります。削除しました
それはいけません。リスト内のすべての要素は同じ型でなければなりません。あなたの例では、いくつかの要素は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]]];
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]]]