填充了类型参数的泛型类型的术语

Terminology for a generic type with type parameter filled in

填充了类型参数的泛型类型的正确术语是什么?这是一个非常常见的结构;我很惊讶地发现我不确定它到底应该叫什么。

换句话说:

如果square是一个函数,那么square(2)是一个函数调用

如果 List 通用类型 ,那么 List<Int> 是...?

(如果重要的话,我正在使用 Kotlin,尽管在我看来,对于支持泛型的许多语言来说,术语应该是相同的。)

在Java,

所有支持参数的类型都是通用类型。

When coding, one provides type arguments in order to create a parameterized type.

如果未提供类型参数,则会创建原始类型。

在 C++ 中,std::vector<int>std::vector<T> 特化 std::array<int, N> 部分特化std::array<T, N>

但是,这些是模板。正如 jaco0646 提到的,使用泛型的语言(例如 Java 和 Rust)通常称它们为 parameterized.

Haskell 中最接近的等价物是 typeclasses,它(有时)调用参数化泛型代码的等价物 instance。 (在面向对象语言中,一个实例指的是一个class的对象,但是Haskell没有class,所以没有歧义。)