I bawił się wokół z HList oraz następujące prace zgodnie z oczekiwaniami:Pierwsze elementy z HList
val hl = 1 :: "foo" :: HNil
val i: Int = hl(_0)
val s: String = hl(_1)
Jednak nie mogę się następujący fragment kodu robocza (załóżmy na chwilę losowego dostępu na listach jest to inteligentny pomysł ;-)):
class Container(hl: HList) {
def get(n: Nat) = hl(n)
}
val container = new Container(1 :: "foo" :: HNil)
val i: Int = container.get(_0)
val s: String = container.get(_1)
Chciałbym mieć get
zwracać Int
i String
według jego parametrów. Zakładam, że jeśli to w ogóle możliwe, muszę użyć Aux
lub at
, ale nie jestem pewien, jak to zrobić.
Great! Dzięki za twoją bibliotekę! – user3127060