"generics"和"higher-order types"之间有什么关系?



从这个问题:Scala中的高级类型是什么?,我知道什么是higher-order types(也包括first-order typeproper type)。

但仍然存在一个问题:generics与"高阶类型"之间的关系是什么?

我知道Java支持generics,这就像Scala中的first-order类型。

下列哪个选项是正确的?

  1. 在Scala中,只有first-order typegenerics
  2. Scala中,first-orderhigher-order类型都属于generics
  3. 在Java中,generics只是指first-order类型,不完整
  4. generics是一个通用术语,意味着我们可以"抽象"类型,无论是first-order还是higher-order

我想说(1.)是错的。我对(3)不太确定,因为我对Java有点生疏。但我想说(4.)非常准确,与(2.)有些相似。

据我所知,术语泛型仅指类型参数的使用。它适用于一阶高阶类型或函数。

离题(有点书呆子):有没有人在(2.)

中看到对翼长的隐藏引用?

最新更新