1

我正在尝试减去 2 个列表并返回比较的产品。

所以如果列表 a = [2,3,2] b = [1,1,1] 那么 ab = [1,2,1] 并且返回的产品 (c) 应该是 1。

val c = List.map (fn i => (i - b) mod 10) a

modulo (mod) 10 适用于两个相减数得出奇数结果的情况,例如 2-8 = ~6 mod 10 = 4。

我被困在减法上,因为 List.map 不允许我做减法,因为它需要一个 int 值而不是一个 int 列表(至少不是我编码它的方式:()。

我对比较也是空白的。

4

2 回答 2

3

您可以使用ListPair.map一次迭代 2 个列表,如下所示:

val c = ListPair.map (fn (i, j) => (i - j) mod 10) (a,b)
于 2010-09-17T01:27:41.167 回答
1

你不想减去b——你想减去相应的值。一种方便的方法是将列表压缩在一起:

val c = List.map (fn (i, j) => (i - j) mod 10) (ListPair.zip (a, b))
于 2010-09-17T01:25:31.427 回答