@Drovosek01

Как понять как работает эта функция в Haskell?

Я смотрю обучающее видео по haskell: https://www.youtube.com/watch?v=43zCXDb5dQ4&t=1954s

5ad8bcaeb62b5935683233.jpeg

Там на 33:02 минуте говорится про функцию sumFstFst, которая в качестве аргументов принимает ещё несколько функций, среди которых функция on, +, helper.

У функции sumFstFst в объявлении нет названий аргументов, после названия сразу идёт равно и "инструкции" что надо делать.
Тем не менее при вызове SumFstSft p1 p2 каким-то образом компилятор понимает, что надо сначала helper применить к p1, потом helper применить к p2, и результаты передать в on вместе с функцией +.

Я не могу понять как это происходит, по какому принципу функция helper вызывается 2 раза и как она понимает, что нужно обработать, мы же после объявления sumFstFst никаких аргументов не указали.
Объясните, пожалуйста.
  • Вопрос задан
  • 228 просмотров
Решения вопроса 1
@1001001
Взгляните на функцию on
она так работает берет бинарный оператор далее функцию и два аргумента над которыми надо произвести действие
on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@AlexSku
не буду отвечать из-за модератора
Если последний аргумент встречается справа тоже на последнем месте, то их можно не писать. Это называется бесточечным стилем.
fun x y z = (...) z
и fun x y = (...)
это одно и тоже.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы