In formlosem Zustand versuche ich eine Funktion zu schreiben, die zwei HLists l1
und l2
beliebiger Länge benötigt, die folgende Eigenschaften aufweisen:
l1
und l2
sind gleich l2
enthält die genauen Typen von l1
, die in einen Konstantenkonstanten-Konstruktor eingebettet sind. Also, wenn l1
l2
könnte
Durch die Verwendung von UnaryTCConstraint
und LengthAux
kann ich die Längen beschränken und einen statischen äußeren Konstruktor für l2
benötigen. Die Anpassung an sie ist jedoch zu einem Problem geworden.
Irgendwelche Ideen, wie ich das machen könnte?
Mapped
liefert genau diese Einschränkung ohne die zusätzliche Notwendigkeit von Length
. Von die Dokumentation :
Geben Sie die Klasse ein, die bezeugt, dass das Ergebnis des Umbruchs jedes Elements von
HList
L
im TypenkonstruktorF
istOut
.
So sieht es in 1.2.4 aus:
%Vor%Und dann:
%Vor% Wie erwartet. Für 2.0 fügen Sie einfach einen shapeless.ops.hlist._
import hinzu und ersetzen Sie MappedAux
durch Mapped.Aux
und schon kann es losgehen.