我需要的那種類型的二元組合子這兩個組合器在Haskell中已經可用嗎?
(a -> Bool) -> (a -> Bool) -> a -> Bool
也許
[a -> Bool] -> a -> Bool
(雖然這也只是第一的foldr1,我通常只需要合併兩個布爾函數)。
這些是內置的嗎?
如果不是,實現簡單:
both f g x = f x && g x
either f g x = f x || g x
或許
allF fs x = foldr (\ f b -> b && f x) True fs
anyF fs x = foldr (\ f b -> b || f x) False fs
Hoogle變成了什麼,但有時其搜索無法正常一概而論。任何想法,如果這些是內置的?它們是否可以從現有的圖書館中創建?
如果這些不是內置的,您可能會建議新名稱,因爲這些名稱非常糟糕。其實這是我希望他們內置的的主要原因。
':(a - > c) - >(b - > c) - >或者b - > c'已經在'Prelude'中;選擇一個不同的名字? – ephemient 2010-02-04 18:26:46
我知道,這就是爲什麼我希望有人能提出很好的選擇。 – 2010-02-04 18:38:53