【发布时间】:2019-02-09 15:46:09
【问题描述】:
我正在处理我的数据库 API,本质上想将列族建模为列的 HList,后者松散地是 Seq[_],所以在某个地方我有一个像 Column[String]::Column[Int]::Column[Double]::HNil 这样的类型,所有元素共享一个通用的类型构造函数。
从上面给出的类型中表达行类型的最简单方法是什么,即String::Int::Double::HNil,本质上是展开内部类型?
我目前的推理是,既然 shapeless 可以在给定正确的 poly 的情况下对 HList 进行映射,那么应该能够(ab)使用 Mapper 特征的依赖类型 Out。
我能想到的一件事就是在正确的情况下实现一个无用的poly,比如为所有Ts 设置一个Case.Aux[Column[T],T],然后为它调用一个Mapper 等等,我有我的@987654333 @,但这感觉有点hacky,我不确定它是否会起作用。
另一方面,对于依赖类型和类型递归,我还没有感到很舒服,我真的想尝试实现一些无形的东西显然已经做了。
感谢您的任何意见!
【问题讨论】:
标签: scala mapping shapeless type-level-computation hlist