2016-02-08 2 views
1

У меня есть пример системы F plymorphism, что я действительно не понимаю: enter image description hereПолиморфные приложение само

Если бы я удалить типы, он останется: \ е \ аф (фа), что делает No. смысл.

Можете ли вы мне помочь? Спасибо!

ответ

4

Снятый термин имеет смысл: в Haskell это будет \f a -> f (f a), довольно обычная функция, которая применяет свой первый аргумент к своему второму, а затем снова к результату.

Разница между \f a -> <body> и \f.\a. <body> есть только одна из обозначений. Если вы хотите, напишите термин Haskell \f -> \a -> f (f a), что эквивалентно, но синтаксический немного ближе к стертому System F.

(Обратите внимание, что double не само приложение, которое будет \f -> f f.)

Смежные вопросы