如何在SML中反转自定义列表?

问题描述 投票:0回答:1

我的自定义数据类型定义如下:数据类型'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))));
recursion sml custom-data-type
1个回答
0
投票

您不能使用内置的附录(@)和列表([head])以及自己的列表类型。

您需要CONS (head, NIL)而不是[head],并且需要编写自己的代码

append: 'a mylist -> 'a mylist -> 'a mylist

append: ('a mylist * 'a mylist) -> 'a mylist

练习中留下append

© www.soinside.com 2019 - 2024. All rights reserved.