我所缺少的是部分应用函数的第二个参数而不是第一个。当我想把这个函数传递给像map这样的东西时,这尤其有用,但是每次都写一个lambda表达式很麻烦。
我为此编写了自己的函数(定义如下,以防万一确实没有内置函数可用,任何其他人都感兴趣),但我真的很想知道Prelude中是否已经存在这种习惯用法,因为我更喜欢重用而不是重新发明。
以下是我的定义和一个微不足道的示例:
我为此编写了自己的函数(定义如下,以防万一确实没有内置函数可用,任何其他人都感兴趣),但我真的很想知道Prelude中是否已经存在这种习惯用法,因为我更喜欢重用而不是重新发明。
以下是我的定义和一个微不足道的示例:
bind2nd :: (a -> b -> c) -> b -> a -> c
bind2nd f b = \a -> f a b
foo :: Int -> Bool -> String
foo n b | b = show n
| otherwise = "blabla"
alwaysN :: Int -> String
alwaysN = bind2nd foo True