相关疑难解决方法(0)

对HList进行排序

给定一个无形HList,其中每个列表元素共享相同的类型构造函数,如何对HList进行排序?

例如:

def some[A](a: A): Option[A] = Some(a)
def none[A]: Option[A] = None

val x = some(1) :: some("test") :: some(true) :: HNil
val y = sequence(x) // should be some(1 :: "test" :: true :: HNil)

def sequence[L <: HList : *->*[Option]#?, M <: HList](l: L): Option[M] =
  ???
Run Code Online (Sandbox Code Playgroud)

我试图实现这样的序列:

object optionFolder extends Poly2 {
  implicit def caseOptionValueHList[A, B <: HList] = at[Option[A], Option[B]] { (a, b) =>
    for { aa <- a; bb <- b } yield aa …
Run Code Online (Sandbox Code Playgroud)

scala shapeless

18
推荐指数
1
解决办法
1559
查看次数

标签 统计

scala ×1

shapeless ×1