为什么Scala具有路径依赖类型?

时间:2011-04-07 13:26:56

标签: scala path-dependent-type

我一直在研究路径依赖类型。我能找到的最好的描述是:

  

如果L是类型标签,那么x.L和y.L是相同的类型iff x和y可以显示为引用同一个对象。

这有时不是人们期望的子类型行为。我希望如果上面例子中的L确实相同,那么这就足以使x.L和y.L变得一致。

Scala的设计是否有任何特殊原因?

3 个答案:

答案 0 :(得分:9)

Scalable Component Abstractions论文对路径依赖类型有很好的解释,也是第3节中的一个很好的例子:“案例研究:主题/观察者”。

答案 1 :(得分:4)

paper很好地解释了这一点。基本上,它们习惯于支持基于抽象数据类型的编程和模块化。

答案 2 :(得分:-7)

将L视为泛型类的类型参数。 Scala夸耀其类型成员,但底层JVM仍然具有相同的局限性。