SML - 插入值并在列表中创建列表的递归

时间:2014-10-21 17:33:32

标签: list sml ml

我正在尝试执行以下操作:

fun help(L)=if null(L) then nil else hd L::help(tl L);

fun inseach(a,L)=if null(L) then [[a]] else (a::L)::help(inseach(a,tl L));

inseach(4,[1,2,3]);

需要返回:[[4,1,2,3],[1,4,2,3],[1,2,4,3],[1,2,3,4]] < / p>

我得到的是:

val help = fn : 'a list -> 'a list
val inseach = fn : 'a * 'a list -> 'a list list
val it = [[4,1,2,3],[4,2,3],[4,3],[4]] : int list list

我想更改命令:

help(inseach(a,tl L)) 

为:

help((hd L)::inseach(a,tl L))  

所以它将头部添加到我正在构建的每个列表中,但每次都会出错。我无法弄清楚这一点。我确信有一些简单而明显的东西让我失踪。我有15个这样的东西,这是最后一个要解决的问题。

0 个答案:

没有答案