【问题标题】:Unable to understand F-omega term无法理解 F-omega 术语
【发布时间】:2017-11-29 10:19:37
【问题描述】:

我正在阅读一篇关于 Fω 的论文,无法理解这句话背后的原因:

类型(∀γ:*.F γ → β)的类型项表明F是一个总是返回β的常数函数。

我猜'F γ → β'是类型术语,即箭头类型。这种箭头类型是一个函数的类型,它接受由类型应用程序“F γ”计算的类型参数并返回一个类型为 β 的值。

如果是这样,为什么 F 应该是一个总是返回 β 的常量(类型)函数?不能是任意类型的函数,比如返回 α 并且仍然满足类型检查器的要求吗?

感谢您的宝贵时间。

【问题讨论】:

    标签: lambda-calculus system-f


    【解决方案1】:

    回答我自己的问题。

    我认为原因是parametricity

    如果 'F γ' 可以返回任何类型,例如 α,则函数(其类型由 ∀ 类型传达)将具有 α → β 的类型。

    参数性规定这个多态函数的所有实例都应该具有相同的行为,这只有在它是恒等函数时才有可能,即类型为 β → β,因此暗示 'F γ' 总是返回 β。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 2017-11-23
      • 1970-01-01
      • 1970-01-01
      • 2014-01-08
      • 1970-01-01
      • 2015-12-02
      相关资源
      最近更新 更多