前奏中不同功能的组成

时间:2013-12-15 15:25:46

标签: haskell

我写了一个函数h ys =(map (+4)(filter(<5)ys)) 任何人都可以向我解释为什么这可以改写为。

h  = map (+4) . (filter (<5))

(filter (<5)) :: (Num a, Ord a) => [a] -> [a]
(+4) :: Num a => a -> a

我们如何用点组成这两个,然后返回类型的过滤器与(+4)的参数不同?

1 个答案:

答案 0 :(得分:2)

您正在撰写map (+4),而不是(+4),其类型为Num a => [a] -> [a],与filter (<5)的{​​{1}}类型一起使用。< / p>