我缺少的是部分应用函数的第二个参数而不是第一个参数的能力.当我想将函数传递给map之类的东西时,这尤其有用,但每次都不必为它编写lambda.
我为此编写了我自己的函数(下面定义,以防万一没有任何内置函数,其他任何人都很好奇),但我真的想知道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
Run Code Online (Sandbox Code Playgroud)