2011-08-12 150 views

回答

13

不是一个完整的答案,但这里有型预测某些用途,我也遇到过:

  • 类型级别元编程。例如,参见Michid的系列(部分IIIIII),Jesper的implementation of HListseries at Apocalisp

  • 解决方法启用类型推断(例如,这里是一些以前的问题1,2,3)。

  • 一种将一堆类型捆绑到单个类型参数中的方法。例如,在我开发的矩阵库中,我定义了trait Scalar { type A; type B; type C; ... },然后将其作为单个参数传递给我的矩阵特征,trait Matrix[S <: Scalar] ...各个类型可以称为S#A,S#B等等。在两个类型为Matrix[S]的矩阵之间,对于相同的S,这些类型将是兼容的(与路径相关类型不同)。

+0

你链接的Jesper的帖子指出,代码不工作,但以后的文章中解释说,Scala的新版本支持: http://jnordenberg.blogspot.com/2009/09/type-lists-and-heterogeneously-typed.html – Blaisorblade

9

一件事型投影可用于为部分类型的应用程序:

({type λ[x]=Tuple2[Int,x]})#λ