我构建了以下内容:
import shapeless._
import poly._
object Main {
def main(args: Array[String]) = {
object iterateOverHList extends (List ~> Iterator) {
def apply[T](it: List[T]) = it.iterator
}
val x = List(1,2,3) :: List("cat","dog") :: HNil
val xIt = x map iterateOverHList
}
}
Run Code Online (Sandbox Code Playgroud)
上面的代码很棒,非常棒.但是,我还想要更多.我想,而不是指定我的HList将包含列表,允许任何Iterable.像这样:
import shapeless._
import poly._
object Main {
def main(args: Array[String]) = {
object iterateOverHList extends (Iterable ~> Iterator) {
def apply[T](it: Iterable[T]) = it.iterator
}
val x = List(1,2,3) :: List("cat","dog") :: HNil
val xIt = x …Run Code Online (Sandbox Code Playgroud)