我的自定义数据类型定义如下:数据类型'a mylist = NIL | CONS of 'a * 'a mylist;
尝试了几个小时,但无法弄清楚如何反转这样的列表。
我的无效代码:
fun reverse NIL = NIL
| reverse (CONS(head,tail)) = reverse tail @ [head];
这里是函数调用:
reverse (CONS(4,CONS(3,CONS(2,NIL))));
您不能使用内置的附录(@
)和列表([head]
)以及自己的列表类型。
您需要CONS (head, NIL)
而不是[head]
,并且需要编写自己的代码
append: 'a mylist -> 'a mylist -> 'a mylist
或
append: ('a mylist * 'a mylist) -> 'a mylist
练习中留下append
。