SML如何减去2个列表并比较产品?

SML如何减去2个列表并比较产品?,sml,Sml,我试图减去2个列表,然后返回比较后的乘积 所以如果列表 a=[2,3,2] b=[1,1,1] 然后 a-b=[1,2,1],返回的产品(c)应为1 val c = List.map (fn i => (i - b) mod 10) a 模(mod)10用于两个减去的数字给出奇数结果的情况,例如2-8=~6 mod 10=4 我一直在做减法,因为List.map不允许我做减法,因为它需要一个int值而不是int列表(至少不是我编码它的方式:()) 比较时我也是空白。您不想减去b-您想减去

我试图减去2个列表,然后返回比较后的乘积

所以如果列表 a=[2,3,2] b=[1,1,1] 然后 a-b=[1,2,1],返回的产品(c)应为1

val c = List.map (fn i => (i - b) mod 10) a
模(mod)10用于两个减去的数字给出奇数结果的情况,例如2-8=~6 mod 10=4

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


比较时我也是空白。

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

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

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

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

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

val c = ListPair.map (fn (i, j) => (i - j) mod 10) (a,b)

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

val c = ListPair.map (fn (i, j) => (i - j) mod 10) (a,b)

你所说的比较产品是什么意思?我应该用不同的方式表达它,我的意思是c列表中最频繁的值并返回它。我想将c列表与它本身进行比较,以检查所有元素是否都是相同的值,如果是,则返回该值。额外的好处是检查它们是否不是,然后是什么ch值是最常用的表示形式+找出哪些元素不适合并返回它们的值和位置。我提出了这个“val n_filter=List.all(fn x=>x=n_value\u char)n_chars”为了解决比较问题。你所说的比较产品是什么意思?我应该用不同的方式来表达它,我的意思是c列表中最频繁的值并返回它。我想将c列表与它本身进行比较,检查所有元素是否都是相同的值,然后返回该值。额外的一个好处是检查如果不是,那么哪个值是最常表示的+找出哪些元素不适合并返回它们的值和位置。我提出了这个“val n_filter=List.all(fn x=>x=n_value\u char)n_chars”来解决比较问题。