1

我有一个 SML 中的 N 个元素的列表。

我想对该列表中的每个元素应用一个函数,所以我使用了 map。

但是我要应用的函数有多个这样的参数:

 foo a b (c, d)

其中 a 是我从列表中使用的元素, bc 和 d 是预定义的变量,每次都相同。

我这样声明我的函数:

 fun foo2 = map foo aList b (c,d)

但我得到一个运算符和操作数错误,这是意料之中的,但我可以想到任何其他方法来做到这一点。

4

2 回答 2

6
fun foo2 list = map (fn x => foo x b (c, d)) list
于 2012-10-03T20:22:00.973 回答
1

如果更改 foo 的 args 的顺序会最方便;当然,您可以制作一个包装器:

fun foo_swapped_args b (c,d) a = foo a b (c, d)

然后你可以做

map (foo_swapped_args b (c,d)) aList
于 2012-10-03T20:06:22.210 回答