什么是类型投影有用?

tan*_*eta 18 type-systems scala

什么是Scala中的类型投影有用?为什么Scala的类型系统支持类型投影和路径依赖类型?这个设计决定背后的理由是什么?

Kip*_*ros 13

不是一个完整的答案,但这里有一些用于我遇到的类型投影:

  • 类型级元编程.举例来说,看到Michid的系列(部分,II,III),加斯帕的实施HList的,以及一系列在Apocalisp.

  • 一种解决方法,以使类型推断(对于实施例中,这里有一些以前的SO问题1,2,3).

  • 一种将一堆类型捆绑到单个类型参数中的方法.例如,在一个矩阵库我发展,我定义trait Scalar { type A; type B; type C; ... },然后把它作为一个参数,以我的矩阵特点,trait Matrix[S <: Scalar] ...这些类型的区别可以被称为S#A,S#B等.在两个类型的矩阵之间Matrix[S],为此S,这些类型将是兼容的(与路径依赖类型的情况不同).


mic*_*hid 9

可以使用的一种类型投影是部分类型应用:

({type ?[x]=Tuple2[Int,x]})#?
Run Code Online (Sandbox Code Playgroud)