我一直在玩 Haskell,包括练习以无点形式编写函数。这是一个示例函数:
dotProduct :: (Num a) => [a] -> [a] -> a
dotProduct xs ys = sum (zipWith (*) xs ys)
我想以无点形式编写此函数。这是我在其他地方找到的一个例子:
dotProduct = (sum .) . zipWith (*)
但是,我不明白为什么无点形式看起来像(sum .) . zipWith (*)
而不是sum . zipWith (*)
. 为什么 sum 在括号中并且有 2 个组合运算符?