Стандартная база SML list
определяется как
datatype 'a list = [] | :: of 'a * 'a list
Однако, я получаю эту ошибку, когда пытаюсь создать свой собственный тип данных списка:
- datatype 'a mylist = [] | mycons of 'a * 'a mylist
Error: syntax error found at LBRACKET
Однако,это работает:
- datatype 'a mylist = Nil | mycons of 'a * 'a mylist;
datatype 'a mylist = Mycons of 'a * 'a mylist | Nil
Но из-за отсутствия квадратных скобок этот версон не выдает очень похожий на список вывод:
- Mycons (1,Nil);
val it = Mycons (1,Nil) : int mylist
- Mycons (1, Mycons (1,Nil));
val it = Mycons (1,Mycons (1,Nil)) : int mylist
Почему SML не принимает мой оригиналпопытка с []
?