展平密封的案例类层次结构

时间:2015-12-18 15:50:55

标签: scala shapeless

假设我有一个密封的案例类层次结构,如下所示:

sealed trait Expr
case class Const(val: Double) extends Expr
case class Plus(x: Expr, y: Expr) extends Expr
case class Times(x: Expr, y: Expr) extends Expr
  • 是否可以自动将Plus(1,Plus(2,3))等表达式转换为HLists的HList?
  • 转换是否会在某个函数f(e: Expr)内工作,即在编译时不知道e的特定结构?

1 个答案:

答案 0 :(得分:0)

事实证明,这已经在SO here上得到了解答,并且在Shapeless发行版中有一个相应的example,如同无形-2.1.0-SNAPSHOT。