Es gibt ein Beispiel für ein Scalaz-Kartenobjektiv here: Dan Burton nennt es containsKey
, und es ist inspiriert von Edward Kmett sprechen. Es gibt in Scalaz 7 auch etwas, das mapVPLens
genannt wird, das nützlich ist, um Werte in einer Karte zu ändern.Scalaz: Wie erstellt man ein Kartenobjektiv mit einem Wert Objektiv?
Meine Frage ist: Wenn ich ein Objektiv zum Ändern von Typ V
und ein Objektiv für eine Map[K,V]
haben, wie kann ich sie komponieren? Ich habe eine Weile nach einem guten, einfachen Beispiel gesucht, aber es gibt immer noch eine Menge Beispiele in Scalaz.
Ich interessiere mich für Scalaz 6 und Scalaz 7 Lösungen.
Danke, das ist eine gute Antwort. Ich arbeite endlich mit der Linsenzusammensetzung, die mit meiner Anwendung arbeitet - viel Kompilierzeit, keine Laufzeitgerangel! –
Zusammenfassend besteht der Trick darin, dem Wert-Objektiv ".partial" hinzuzufügen, wenn Sie mit einer Karte zu tun haben. –