combinator :: (b -> b -> c) -> (a -> b) -> a -> a -> c combinator f g x y = f (g x) (g y)
有没有更简单的方法来表达这个函数?我发现自己经常使用它。
我尝试使用 (r->) 的 Applicative 实例,但我能得到的最好的结果是
(<*>) : (r -> a -> b) -> (r -> a) -> (r -> b), f <*> g = (\r -> f r (g r))
您显然不是唯一发现该功能有用的人,因为该组合器包含在
base
Data.Function
on
Hoogle 搜索引擎允许通过函数签名搜索函数,有助于找到此类问题的答案。