scala - Can I use shapeless to return the same arity of HList as passed HList? -
here example. i'm trying wrap external api accepts , returns same arity of list
:
def externapi(args: list[int]): list[string] = args.map(_.tostring)
i thought excuse learn shapeless seems hlist
able do.
def foo(args: hlist): hlist = ???
how can encode in type passed hlist
, returned hlist
of same arity?
to expand on @stew's comment, can use sized
enforce equal arity between lists.
import shapeless._ import syntax.sized._ def externapi[n <: nat](args: sized[list[int], n]): sized[list[string], n] = args.map(_.tostring)
usage:
scala> externapi(sized[list](1, 2, 3, 4)) res0: shapeless.sized[list[string],shapeless.nat._4] = list(1, 2, 3, 4) scala> res0 foreach println 1 2 3 4
i'm far shapeless expert, don't know if there way hlist
, seems collections homogeneous anyway.
Comments
Post a Comment