【发布时间】:2010-11-25 17:27:44
【问题描述】:
谁能解释一下,为什么要使用这些功能 有不同数量的参数和行为,但是 相同类型的签名,但它们都是正确的?
comp1 :: (a -> b) -> (b -> c) -> a -> c
comp1 f g = g.f
comp2 :: (a -> b) -> (b -> c) -> a -> c
comp2 f g x = g (f x)
还有,为什么comp2有
comp2 :: (a -> b) -> (b -> c) -> a -> c
而不是类似的东西
comp2 :: a -> (a -> b) -> (b -> c) -> a -> c
?
谢谢。
【问题讨论】:
-
这两个函数在哪方面有不同的行为?在我看来是一样的......