Lambda 这些多态类型之间的区别是什么?

Lambda 这些多态类型之间的区别是什么?,lambda,polymorphism,system-f,Lambda,Polymorphism,System F,在系统F中,以下三种类型之间的区别是什么: 全文转载如下: ∀X.((X → X) → (X → X)) ∀X.((X → X) → ∀X.(X → X)) ((∀X.X → X) → (∀X.X → X)) 第二个量词比第一个量词更一般吗?取决于所有量词绑定的紧密程度。让我们假设它绑定到下一个终端表达式(变量或()-block) 第一个变量将变成(X0->X0)->(X0->X0),其中X0是一个新类型变量 第二个将成为所有X1的(X0->X0)->。(X1->X1)其中X0和X1是新的 第

在系统F中,以下三种类型之间的区别是什么:

全文转载如下:

∀X.((X → X) → (X → X))
∀X.((X → X) → ∀X.(X → X))
((∀X.X → X) → (∀X.X → X))

第二个量词比第一个量词更一般吗?

取决于所有量词绑定的紧密程度。让我们假设它绑定到下一个终端表达式(变量或
()
-block)

第一个变量将变成
(X0->X0)->(X0->X0)
,其中
X0
是一个新类型变量

第二个将成为所有X1的
(X0->X0)->。(X1->X1)
其中
X0
X1
是新的


第三个-
(bot->X)->(bot->X)
其中,
X
是旧的绑定,bot是无人居住的
,因为所有X.X

被否决的不是我,但我想你也应该在cs.stackexchange.com.me上问这个问题,但cs可能更合适——这与Haskell无关。另外,我会从阿尔法转换这些量词开始…你的意思是说,在所有这些之后,我应该用b替换a吗?属于cs.se,但可能他们也会想要一个更清晰的问题,你理解什么,不理解什么:而不是仅仅“为我解决这个问题”。