반올림 (상수 값 반환) 태그가있는 HList (레코드)를 매핑하려고 시도하고 있습니다. value, polymorphic argument type)은 해당 함수의 적절한 인수 유형으로 구성된 레코드에 대해 기능합니다. 저는 ZipApply에 대해 알고 있는데, HLists에서 작동하는 것처럼 보입니다.하지만 순서에 관계없이이 작업을 구체적으로 수행하고 키 유형을 사용하여 사용할 함수를 선택하려고합니다.함수의 태그가있는 HList (레코드)를 인수 형식의 레코드를 통해 매핑합니다.
가 여기에 내가 알아낼 수 없습니다 이유로 컴파일되지 않은 내 코드의 예입니다 :
import shapeless._
import labelled._
import ops.hlist._
import ops.record.Selector
import syntax._
import syntax.singleton._
import syntax.HListOps
object POC {
case class Foo(bar: String)
val gen = LabelledGeneric[Foo]
val funs = ('bar ->> { s: String => s.toUpperCase() }) :: HNil
val poly = new Poly1 {
implicit def apply[K, V]
(implicit selector: Selector.Aux[funs.type, K, (V) => String]) =
at[FieldType[K, V]] { v => selector(funs)(v) }
}
def run(foo: Foo)(implicit mapper: Mapper[poly.type, gen.Repr]) =
mapper(gen to foo)
println(run(Foo("bar")))
// could not find implicit value for parameter mapper: shapeless.ops.hlist.Mapper[POC.<refinement>.type,POC.gen.Repr]
}
어떤 셰이프 버전을 사용하고 있습니까? – laughedelic
@laughedelic 2.3.2 – glittershark