だから私は を介してマップ関数を作成したかったのHList
ですが、適用関数内のいくつかの条件を確認する必要があります。次のようなものです:
object test extends Poly1 {
implicit def default[L <: HList](implicit head: ops.hlist.IsHCons[L]) =
at[L](t => {
if(true) t.head else false //here some condition
})
}
その結果、要素に関するすべての情報type
が失われます。t.head
ところで、「クリーン」関数を作成する場合:
object test extends Poly1 {
implicit def default[L <: HList](implicit head: ops.hlist.IsHCons[L]) =
at[L](t => t.head)
}
その後、明らかに、それはすべて大丈夫です。
問題は、それをどのように処理し、そのような機能を作成するか (可能であれば)、または別の方法を検索する必要があるかどうかです。なぜここでタイプ消去ができるのですか?