,要求左边是函数,右边是其参数
> max 5 3 * 2 + 1
11
> max 5 $ 3 * 2 + 1
7
# 函数组合
函数组合用```....```函数的定义为:
(.) :: (b -> c) -> (a -> b) -> a -> c
f . g = \x -> f (g x)
函数组合的用处之一就是生成新函数,并传递给其他函数。...假设我们有一个数字组成的list,我们要把它其中每个元素转成负数,在使用函数组合之前我们可能会这样实现:
Prelude> map (\x -> negate (abs x)) [1,2,-3,4,5,...-6] [-1,-2,-3,-4,-5,-6]
> tip: 先用abs函数取绝对值,再用negate函数取反
用函数组合的话就可以这样实现:
Prelude> map (negate . abs)...[1,2,-3,4,5,-6] [-1,-2,-3,-4,-5,-6]
函数组合的另一用途就是定义 point free style (也称作 pointless style) 的函数。