你做
import shapeless._ ; import poly._
object fun extends (List ~>> (List, Int)) {
override def apply[T](list: List[T]): (List, Int) = list -> list.size
}
println((List(1,2,3) :: List("a", "b", "c") :: HNil).map(fun))
将每个子列表映射成一对。但是,如果 HList 元素更复杂,例如元组,该怎么办?自然的尝试
object fun extends ((String -> List) ~>> (List, Int)) {
override def apply[T](list: (String -> List[T])): (List, Int) = list -> list.size
被编译器拒绝。你做什么工作?你在哪里可以学到这个?