haskell - Polymorphic self application -
i have example of system f plymorphism don't understand:
if remove types remain: \f.\a.f (f a) makes no sense.
can me this? thank you!
the erased term make sense: in haskell \f -> f (f a)
, ordinary function applies first argument second, , again result.
the difference between \f -> <body>
, \f.\a. <body>
1 of notation. if prefer, write haskell term \f -> \a -> f (f a)
, equivalent syntactically bit closer erased system f.
(note double
not self application, \f -> f f
.)
Comments
Post a Comment