【问题标题】:Mapping 3 argument function to a list in Haskell将 3 个参数函数映射到 Haskell 中的列表
【发布时间】:2013-10-13 12:12:53
【问题描述】:

map 函数适用于非常简单的函数,这些函数对 Ints 列表中的每个元素都没有像 *7 这样的参数。

但是假设我创建了一个自定义函数,它接受一个 Char、String 和 Int,然后返回一个 Char,我想将此函数应用于一个字符列表,即一个字符串,以便在将另一个函数应用于每个字符后返回一个字符串字符?当我尝试这个时,我得到的只是错误消息?

【问题讨论】:

  • 你的意思是这样的:map (\x -> f x "string" 10) "another string" ?
  • 将您的函数应用于单个Char 的预期结果是什么?
  • map 不适用于采用 no 参数的函数,但适用于采用 one 参数的函数。地图类型为:map::(a -> b) -> [a] -> [b](a -> b) 是一个函数,它采用 a 类型的值返回另一个 b 类型的值。
  • @S.R.I 我不在乎它是 0 还是 1 参数,我知道它的作用!我只想知道如何将一个带有许多参数的函数映射到一个列表。
  • @Eddie,那你能细化你的问题吗?特别是回答n.m的问题——或者IOW,你能拿偏函数申请吗?

标签: haskell map


【解决方案1】:

将您的 Char 参数放在最后一个位置:

foo :: String -> Int -> Char -> Char
foo str num c = c

bar = map (foo str num)

但我们确实需要您提供更多信息来更好地帮助您。您可以将您尝试编写的代码添加到您的问题中吗?

【讨论】:

    猜你喜欢
    • 2012-09-27
    • 2019-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多