什么是Scala中的类型投影有用?为什么Scala的类型系统支持类型投影和路径依赖类型?这个设计决定背后的理由是什么?什么是有用的类型投影?
17
A
回答
13
不是一个完整的答案,但这里有型预测某些用途,我也遇到过:
类型级别元编程。例如,参见Michid的系列(部分I,II,III),Jesper的implementation of HList和series at Apocalisp。
一种将一堆类型捆绑到单个类型参数中的方法。例如,在我开发的矩阵库中,我定义了
trait Scalar { type A; type B; type C; ... }
,然后将其作为单个参数传递给我的矩阵特征,trait Matrix[S <: Scalar] ...
各个类型可以称为S#A
,S#B
等等。在两个类型为Matrix[S]
的矩阵之间,对于相同的S
,这些类型将是兼容的(与路径相关类型不同)。
9
一件事型投影可用于为部分类型的应用程序:
({type λ[x]=Tuple2[Int,x]})#λ
相关问题
- 1. 什么是投影?
- 2. 为什么循环引用的类型投影是非法的?
- 3. 斯卡拉类型投影的正确限制是什么?
- 4. 什么是价值投影?
- 5. 投影矩阵的用途是什么?
- 6. 什么是Gall-Peters投影的proj4js投影代码?
- 7. MKMapView使用什么投影?
- 8. 什么是NHibernate中的投影?
- 9. Haskell类型级别投影
- 10. WinRT投影类型文档
- 11. 路径依赖类型是否是类型投影?
- 12. 什么设备类是电视机还是投影仪?
- 13. 什么是一种投影机
- 14. 投影转换有什么不同?
- 15. 使用cocos2d-iphone启用2D投影的好理由是什么?
- 16. 应用投影的最佳方法是什么?
- 17. 不能使用类型投影到递归(f-bound)类型
- 18. 理解型投影
- 19. WinJS.Binding.List投影原型
- 20. 为什么Null无效的LINQ投影?
- 21. 地图拼贴 - 什么样的投影?
- 22. 如何使用Spring Data REST获得所有投影类型
- 23. nhibernate投影到匿名类型
- 24. 强类型视图投影linq
- 25. 从NHibernate投影中获取子类型
- 26. 将实体类型映射到投影
- 27. EntityFramework。 SelectMany与匿名类型和投影
- 28. 如何从投影类型推断正确的类型参数?
- 29. 什么是通用类型?
- 30. 使用类型对Grails服务有什么影响?
你链接的Jesper的帖子指出,代码不工作,但以后的文章中解释说,Scala的新版本支持: http://jnordenberg.blogspot.com/2009/09/type-lists-and-heterogeneously-typed.html – Blaisorblade