Полиморфное самостоятельное применение
1 ответ
Решение
Вычеркнутый термин имеет смысл: в Хаскеле это будет \f a -> f (f a)
довольно обычная функция, которая применяет свой первый аргумент к своему второму, а затем снова к результату.
Разница между \f a -> <body>
а также \f.\a. <body>
это только один из обозначений. Если вы предпочитаете, напишите термин Haskell \f -> \a -> f (f a)
, что эквивалентно, но синтаксически немного ближе к стертой Системе F.
(Обратите внимание, что double
не само приложение, которое было бы \f -> f f
.)