我似乎无法找到这个看似简单的SML问题的简单答案。我的代码: fun inde(x, y, L) = if null L then nil else
if x=hd(L) then y+1::inde(x,y+1,tl L) else
inde(x,y+1,tl L);
我想Y中的功能之外的变量,因此这将是不知疲倦(X,L),但具有在y仍算正常。当我声明它在函数之外(到0)
对于ML中的作业分配,我必须使用折叠函数和匿名函数将整数列表变成交替和。如果列表为空,则结果为0.这是迄今为止我所拥有的。我认为我所拥有的是正确的,但是我最大的问题是我无法弄清楚如何编写我作为一个匿名函数。任何帮助将不胜感激。 fun foldl f y nil = y
| foldl f y (x::xr) =
foldl f(f(x,y))xr;
val sum
地图中的功能非常简单。我想将列表中的每个元素都加倍: map(fn x => x * 2);
但是如果我想命名这个函数是双重的呢? fun double = map(fn x => x * 2);
调用这个函数,我得到 - double [1,2,3];
val it = fn : int list -> int list
我该如何命名这个功能增加一倍?