我有一个自然数类型的HList,我想对它进行映射操作
object NatToString extends Poly1 {
implicit def caseNat = at[Nat](_.toString)
}
val list = _5 :: _3 :: HNil
list.map(NatToString)
这段代码无法编译并抛出以下错误:
无法找到隐式参数mapper,其类型为shapeless.ops.hlist.Mapper[Main.Nat_to_String.type,shapeless.::[shapeless.Nat._5,shapeless.::[shapeless.Nat._3,shapeless.HNil]]]。
但是如果我用Int(或String、List等)代替Nat,它就可以完美运行。
我该如何在HList上进行Nat映射?