【发布时间】:2010-03-22 23:20:27
【问题描述】:
在玩了一下 haskell 之后,我偶然发现了这个函数:
Prelude Data.Maclaurin> :t ((+) . ($) . (+))
((+) . ($) . (+)) :: (Num a) => a -> (a -> a) -> a -> a
(Data.Maclaurin 由包向量空间导出。)所以它需要一个 Num、一个函数、另一个 Num,并最终返回一个 Num。什么魔法使以下工作?
Prelude Data.Maclaurin> ((+) . ($) . (+)) 1 2 3
6
2 显然不是函数 (a->a) 还是我错过了什么?
【问题讨论】:
标签: haskell types numeric typeclass