Я недавно преподавал себе Haskell, и одним из моих упражнений было реализовать функцию, которая принимает две функции в качестве аргументов и передает число 3 первой функции и результат второй функции. У меня больше опыта с ракеткой. Функция, которую я создал для ракетки:Haskell Функции высокого порядка. передавая две функции в качестве аргументов.
(define (nestfun3 function function2)
(function2 (function 3)))
Я пытаюсь воспроизвести эту функцию в ракетке. я знаю, что функции высшего порядка только с одной функцией в качестве аргумента может быть как
twice function = function . function
Как я могу передать две функции? Я попытался
twice function = function . function
three function = function . twice
В этом случае все, что вам нужно сделать, это перевести '(define (FOO) BAR)' в 'FOO = BAR'. –
У Haskell есть специальная поддержка для этой задачи. Вы определяете свою функцию, просто говоря 'foo = (.)' – Ingo