Я немного поигрался с Хаскеллом, включая отработку написания функций в бессмысленной форме.Вот пример функции:
dotProduct :: (Num a) => [a] -> [a] -> a
dotProduct xs ys = sum (zipWith (*) xs ys)
Я хотел бы написать эту функцию в бессмысленной форме.Вот пример, который я нашел в другом месте:
dotProduct = (sum .) . zipWith (*)
Однако я не понимаю, почему форма без точек выглядит как (sum .) . zipWith (*)
вместо sum . zipWith (*)
.Почему сумма в скобках и имеет 2 оператора композиции?