Haskell 多态性自我应用
我有一个我不太了解的System F plymorphism的例子: 如果我删除这些类型,它将保留: \f、 \a.f(f a)这毫无意义 你能帮我吗?Haskell 多态性自我应用,haskell,lambda,system-f,Haskell,Lambda,System F,我有一个我不太了解的System F plymorphism的例子: 如果我删除这些类型,它将保留: \f、 \a.f(f a)这毫无意义 你能帮我吗? 谢谢大家! 删除的术语确实有意义:在Haskell中,它将是\f a->f(f a),一个相当普通的函数,将其第一个参数应用于第二个参数,然后再应用于结果 \f a->和\f.\a之间的区别只是其中一种表示法。如果愿意,可以编写Haskell术语\f->\a->f(fa),它是等效的,但在语法上更接近已擦除的系统f (请注意,double不是
谢谢大家! 删除的术语确实有意义:在Haskell中,它将是
\f a->f(f a)
,一个相当普通的函数,将其第一个参数应用于第二个参数,然后再应用于结果
\f a->和\f.\a之间的区别代码>只是其中一种表示法。如果愿意,可以编写Haskell术语\f->\a->f(fa)
,它是等效的,但在语法上更接近已擦除的系统f
(请注意,double
不是自我应用,这将是\f->f
)删除的术语确实有意义:在Haskell中,它将是\f a->f(f a)
,一个相当普通的函数,将其第一个参数应用于第二个参数,然后再次应用于结果
\f a->和\f.\a之间的区别代码>只是其中一种表示法。如果愿意,可以编写Haskell术语\f->\a->f(fa)
,它是等效的,但在语法上更接近已擦除的系统f
(请注意,double
不是自我应用程序,而是\f->f
)