【问题标题】:SML: map function on list with a function that takes more than 1 argumentSML:列表上的映射函数,其函数需要超过 1 个参数
【发布时间】:2012-10-04 04:22:00
【问题描述】:

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

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

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

 foo a b (c, d)

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

我这样声明我的函数:

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

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

【问题讨论】:

  • 您的 foo2 函数似乎缺少参数?

标签: list map sml


【解决方案1】:
fun foo2 list = map (fn x => foo x b (c, d)) list

【讨论】:

    【解决方案2】:

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

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

    那你就可以了

    map (foo_swapped_args b (c,d)) aList
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-02
      • 1970-01-01
      相关资源
      最近更新 更多