【发布时间】:2010-09-24 16:43:15
【问题描述】:
在 Haskell 中是否有一个优雅的表示法用于将函数的参数进行无序柯里化?
例如,如果你想用 2 除以列表的所有元素,你可以这样写
map ((/) 2) [1,2,3,4,5]
但是,要划分列表的所有元素,您似乎需要定义一个匿名函数
map (\x -> x/2) [1,2,3,4,5]
在更复杂的情况下,匿名函数很快就会变得笨拙。我知道在这种情况下 map ((*) 0.5) [1,2,3,4,5] 可以正常工作,但我很想知道 Haskell 是否有更优雅的方法来对函数的参数进行柯里化乱码?
【问题讨论】:
-
flip和反引号与简单地使用中缀函数一起很好(正如 delnan 指出的那样)。