Map Shapeless hlist Typ F [T1] :: ... :: F [Tn] :: HNil zum Typ T1 :: ... :: Tn :: HNil (type level sequencing)

8

Ich baue eine generische Funktion, die eine HList der Form F[T1] :: ... :: F[Tn] :: HNil übernimmt, diese in eine F[T1 :: ... :: Tn :: HNil] umwandelt und diese dann an einen übergebenen Block übergeben muss Damit ich arbeiten kann, muss ich den HList-Typ in F[_] extrahieren. Ich habe unter Shapeless etwas < hlistconstraints :

%Vor%

... aber das kann nur verwendet werden, um zu verifizieren, dass die übergebene hlist tatsächlich nur aus F[_] besteht; Es scheint jedoch keine Möglichkeit zu geben, das _ -Bit sozusagen zu einer eigenen Liste zu extrahieren.

Wo sollte ich nach etwas suchen, um den Job zu machen? Oder sollte ich einfach nicht erwarten, etwas aus der Box zu finden und stattdessen die Typberechnung selbst zu erstellen?

Offenlegung: Diese Frage ist ein Hilfsmittel für Generisch transform / fold / map über tuple / hlist mit einigen F [_] , ist aber meiner Meinung nach mindestens so nützlich wie eine eigenständige Frage.

    
Erik Allik 21.10.2014, 20:39
quelle

1 Antwort

3

Sieht so aus als würde Sequencer dies bereits tun:

%Vor%

... aber ich bin momentan nicht in der Lage, mir einen Weg zu überlegen, wie ich das schöner machen kann

  • Entfernen der Wrapper-Klasse;
  • Scala infer TC muss Option sein.

Hinweis: Ich denke, dass dies als Antwort nützlich ist, aber ich akzeptiere es nicht - in der Hoffnung, dass jemand eine generischere und nettere Lösung finden wird.

    
Erik Allik 22.10.2014 15:53
quelle