hlist

    8熱度

    1回答

    假設我想穿越案例類通用表示所描述here 我定義了一些類型類描述字段: trait Described[X] extends (X => String) object Described{ def apply[X](x: X)(implicit desc: Described[X]) = desc(x) } 定義了一些實例: implicit object DoubleDescr

    3熱度

    1回答

    我一直在試圖獲得一些編譯代碼。這意味着要採取HList,提取出字符串並將它們連接在一起。 {-# LANGUAGE RankNTypes #-} {-# LANGUAGE DataKinds #-} {-# LANGUAGE TypeSynonymInstances #-} {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE MultiPara

    5熱度

    1回答

    下面的代碼裏面似乎很明顯,編譯和運行 case class Pair(a: String, b: Int) val pairGen = Generic[Pair] object size extends Poly1 { implicit def caseInt = at[Int](x => 1) implicit def caseString = at[String](

    2熱度

    1回答

    我正在嘗試爲shapeless.HList創建自定義uPickle Writer,以轉換爲簡單數組而不是複雜嵌套對象。 ,但我無法提供足夠的具體證據可能我映射我poly 我有這樣的代碼: import upickle.Js import upickle.default._ import shapeless._ import poly._ import shapeless.ops.hlist

    5熱度

    1回答

    我試圖抽象的過度android.os.Bundle API轉換數據,目的是產生這種方式捆綁: case class MyClass(a: Int, b: String) val mc = MyClass(3, "5") implicit val bundleable = Bundle.from[MyClass]() val bundle = bundleable.write(mc) ass

    11熱度

    2回答

    我目前正在實現一個庫來對XML-RPC消息進行序列化和反序列化。這幾乎完成,但現在我試圖刪除我當前的樣板使用方法無形。我當前的代碼: trait Serializer[T] { def serialize(value: T): NodeSeq } trait Deserializer[T] { type Deserialized[T] = Validation[AnyEr

    6熱度

    1回答

    問題1 - 基本LUBConstraints 我第一次嘗試與現有LUBConstraints玩弄缺少證據(見下面的代碼塊)失敗。任何暗示爲什麼?是不是一個空的清單是一個有效的多頭清單?沒有元素違反約束。 import shapeless.ops.coproduct import shapeless.{::, :+:, Coproduct, HNil, HList} object testLU

    1熱度

    2回答

    (注:從Shapeless: Trying to restrict HList elements by their type斯普利特) 問題2 - 自己的約束使用上積 我真正想要做的是編寫使用上積了新的約束。 trait CPConstraint[L <: HList, CP <: Coproduct] extends Serializable object CPConstraint {

    1熱度

    2回答

    給定一個類型構造/容器F[_]我想打一個組合子可以通過以下規則集組成態的類型和hlist類型到一個新的容器: F[HNil]和F[HNil]成F[HNil] F[A]和F[HNil]成F[A :: HNil] F[HNil]和F[A]成F[A :: HNil] F[A]和F[B]成F[A :: B :: HNil] F[L <: HList]和F[R <: HList]成F[L :: R](hli

    2熱度

    1回答

    這裏是一個例子。我試圖包裝接受一些外部API和返回的List相同元數: def externApi(args: List[Int]): List[String] = args.map(_.toString) 我認爲這是一個很好的藉口,學習無形的,因爲它似乎喜歡的事,HList就能夠做到。 def foo(args: HList): HList = ??? 我怎樣才能在經過HList和返回H