具有二元函数的组合
常规构图适用于一元函数。在二进制的情况下,我们可以定义
(f .: g) x y = f (g x y) -- which is also
= f ((g x) y)
= (f . g x) y -- by definition of (.)
= (f .) (g x) y
= ((f .) . g) x y
因此,通过 eta 收缩来实现,此外,
(.:) f g = ((f .) . g)
= (.) (f .) g
= (.) ((.) f) g
= ((.) . (.)) f g
所以 (.:) = ((.) . (.))
,一个半着名的定义。
例子:
(map (+1) .: filter) even [1..5] -- [3,5]
(length .: filter) even [1..5] -- 2