【发布时间】:2013-02-13 17:35:14
【问题描述】:
我现在正在学习 Haskell,我正在尝试使用函数组合。
我写了两个函数。
let func1 x y = x + y
let func2 t = t*2
但是,当我尝试组合这两个函数时,
func2 . func1 1 2我希望得到 6 个。
相反,我得到了这个错误:
No instance for (Num (a -> b))
arising from a use of `func1' at <interactive>:1:8-16
Possible fix: add an instance declaration for (Num (a -> b))
In the second argument of `(.)', namely `func1 1 2'
In the expression: func2 . func1 1 2
In the definition of `it': it = func2 . func1 1 2
有人可以解释为什么这不起作用吗?
【问题讨论】:
-
(func2 .) . func1,或func2 . func1 1。要组合一个带有多个参数的函数,您需要更多(.)。
标签: haskell function-composition