高阶类型与高阶类型的歧义消除

斯蒂芬·多拉斯(Stefan Dollase)

在上一个问题中,我问为什么不能用Java声明Monad接口?在那里,我得到的评价从作者Brian Goetz说,我应该叫“高阶类型”,“高kinded类型”。

现在,我阅读了有关类型系统的更多信息,并且了解了更高种类的类型的概念。但是,我仍然对这些术语感到困惑。我试图使用Google自己消除它们的歧义,但是似乎没有一个明确的答案。因此,我的问题是以下术语的确切含义是什么:

  • 高阶类型
  • 高级种类
  • 高阶种类

这三个术语都存在吗?它们之间有区别吗?有什么区别?编程语言之间的含义是否有所不同?

我还注意到StackOverflow有多个标签:

但是,两者都没有标签Wiki。

斯蒂芬·多拉斯(Stefan Dollase)

博客文章之后,术语“高阶类型”似乎是“较高种类的类型”和“较高等级的类型”的通用术语高阶种类可能是我感到困惑时刚提出的一个术语。

高级种类

对于更高种类的类型,可以接收本身是泛型类型的类型参数:

interface Foo<T<_>> {
    T<String> get();
}

这是声明Monad接口所必需的

更高等级的类型

对于较高级别的类型,可以接收其类型仍然包含未指定的类型参数的参数:

interface Bar {
    void foobar(<E> List<E> list);
}

不幸的是,更高等级的类型检查/推断是不确定的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

高阶类型与高阶类型的歧义消除

来自分类Dev

Haskell高阶函数类型

来自分类Dev

reasonml类型高阶函数

来自分类Dev

高阶类型推断

来自分类Dev

高阶组件的类型验证

来自分类Dev

高阶函数,流类型注释

来自分类Dev

如何比较高阶类型?

来自分类Dev

高阶函数的Clojure类型提示

来自分类Dev

高阶类型的Haskell任意实例

来自分类Dev

高阶类型的Haskell任意实例

来自分类Dev

高阶函数参数类型的类型推断错误

来自分类Dev

通用高阶React组件产生类型错误

来自分类Dev

Kotlin高阶函数参数:传递子类型

来自分类Dev

高阶逻辑中的数据类型相等

来自分类Dev

Kotlin - 高阶函数和类型不匹配

来自分类Dev

通用高阶函数的不兼容流类型

来自分类Dev

高阶函数中的类型定义和类型不匹配

来自分类Dev

召唤辅助类高阶类型,不参考原始类型

来自分类Dev

高阶函数:“无法使用类型'((_)-> _)'的参数列表调用'map'”

来自分类Dev

为什么`filter`可以用于高阶出现类型?

来自分类Dev

Typescript推断高阶函数中内部函数的类型

来自分类Dev

高阶类型参数中下划线用法的规则

来自分类Dev

无法将类型分配给React高阶组件

来自分类Dev

scala - 高阶函数将类型 T 更改为 Nothing

来自分类Dev

Psum 不累积(多态高阶函数)而不强制类型

来自分类Dev

如何将Scala高阶类型特征的混合类型与Java通用类型匹配?

来自分类Dev

SwiftUI ForEach无法推断复杂的闭包返回类型;添加显式类型以消除歧义

来自分类Dev

无法推断复杂的闭包返回类型;添加显式类型以消除Swift UI的歧义

来自分类Dev

C ++ 11如何使用Lambda和高阶函数将向量转换为不同类型的向量

Related 相关文章

热门标签

归档