Haskell(。)用于具有多个操作数的函数

时间:2015-02-16 00:14:28

标签: haskell functional-programming composition

(.)运算符具有签名:

(.) :: (b -> c) -> (a -> b) -> a -> c
(.) f g x = f $ g x

这看起来与原始递归函数中的composition function类似,只有一个 g

我对扩展 g -functions的数量感兴趣,但是(多个)函数在函数(.)上应用g函数有多个操作数。换句话说就像:

(..) :: (c -> d) -> (a -> b -> c) -> a -> b -> d
(..) f g x y = f $ g x y

Hoogle上搜索不会产生任何功能。是否有一个包可以处理任意数量的操作数?

2 个答案:

答案 0 :(得分:6)

回答 - 如果我的意见:

多参数函数组合运算符很容易定义,幸运的是有人已经为你做了这个。 composition包有一组很好的运算符供您用这种方式组合函数。我还发现,fpcomplete's版本不是使用haskell.org的hoogle引擎,而是搜索更多包,以便更容易找到我正在寻找的内容。

答案 1 :(得分:2)

Jasper Van der Jeugt有一个通用运营商正是这样做的。参看this blog post