0

私は SML を学び始めたばかりで、問題があります。同種ではないリストのデータ型を定義したいと思います。
たとえば、

val a = [1,[2,4,3],5,[2,6]] 

私はこのデータ型を作りました

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

しかし、次のエラーが表示されます

/tmp/emacs-region29207RwC:8.34-8.43 Error: unbound type constructor: multiList

uncaught exception Error
  raised at: ../compiler/TopLevel/interact/evalloop.sml:66.19-66.27
             ../compiler/TopLevel/interact/evalloop.sml:44.55
             ../compiler/TopLevel/interact/evalloop.sml:296.17-296.20
4

1 に答える 1

1

データ型の宣言にいくつかのエラーがあります。まず、値コンストラクターの最初の文字を大文字にすることは (実際に行っているように) 良い方法ですが、型コンストラクターをすべて小文字にすることも良い方法です。
あなたが持っている本当のエラーは、値コンストラクターを定義するときのようにmullist型を参照することです。multiListList

それが修正されたら、マルチリストを作成できます。

datatype 'a mullist = List of 'a mullist list
                    | E of 'a

val a = [E 1, List [E 2, E 4, E 3], E 5, List [E 2, E 6]]
于 2013-04-03T13:20:30.447 に答える