2009-01-30 59 views
4

我缺少的是部分应用函数的第二个参数而不是第一个参数的能力。当我想要将函数传递给像map这样的函数时,这是特别有用的,但是不必每次都为它写一个lambda表达式。C++的std :: bind2nd是否有内置的Haskell等价物?

我为此编写了自己的函数(定义如下,以防万一确实没有任何内置函数和其他人都好奇),但我真的很想知道是否已经存在某些东西这个成语的序曲,因为我喜欢重复使用而不是重新创作。

这里是我的定义,一个简单的例子:

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 

回答

相关问题