2009-01-30 52 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 

回答

相關問題