1

我正在寻找用于指代嵌套下等效的泛型类型的名称。也就是说,您不会通过将类型嵌套在自身内部来获得“不同的值”。

例如, anAsync<Async<int>>可以被视为等效于 an Async<int>,我想知道如何调用Async实际上具有此等效属性的类型。

// Async<int> == Async<Async<int>>
Async<int> r1 = Async.Done(Async.Done(1))
Async<Async<int>> r2 = r1
Async<int> r3 = r2

我的直觉是称它们为“折叠类型”或“嵌套下的幂等”,但我真的不知道正确的术语是什么。

4

1 回答 1

2

我想你会称之为幂等类型构造函数。但是,我从未见过这种情况出现,除非可能是模态类型理论中的某些类型模态(这是相当深奥的)。对于内置/抽象类型的构造函数,它根本没有意义!在任何设计合理的类型系统中,如果还有 C(T) = T ( injectivity ) ,您将只有 C(C(T)) = C(T )。特别是,也不Async应该是幂等的,因为这些各自类型的对象抽象的同步数量存在差异,这会产生计算差异。

于 2013-05-24T07:27:12.063 回答