Ich wollte versuchen, Objektive und die Monocle-Bibliothek schien (aus meiner noobish Perspektive) gut mit all diesen schicken ohne Kochplatte @Lenses
. Leider habe ich herausgefunden, dass es für Anfänger wenig bis nicht lernfähige Materialien gibt (ich kenne Grundlagen von FP in Vanilla Scala, kein Scalaz). Offizielle Tutorial fehlt einfache Beispiele (und/oder ihre Ergebnisse) und mischt in recht komplexen Scalaz-Bibliothek. Man würde annehmen, dass solch triviale Aufgaben wie der Zugriff auf eine Karte auf einer ersten Seite behandelt werden.Karte ändern über Monocle
Ich habe folgenden Code-Schnipsel:
@Lenses case class House(presentsDelivered: Int)
type Houses = Map[(Int, Int), House]
@Lenses case class Town(houses: Houses)
@Lenses case class Santa(x: Int, y: Int)
@Lenses case class World(santa: Santa, town: Town)
Ich sah at
und index
, aber keine einfachen Beispiele (nur einig seltsame [Magie für mich] Antwort mit applyOptional
den vorformulierten erforderlich). Ich möchte die Karte aktualisieren - houses
in Town
. Ich habe versucht, etwas in diesem Sinne:
(World.town ^|-> Town.houses ^|-> index((x, y)) ^|-> House.presentsDelivered)
.modify { _ + 1 }(world)
Welche syntaktisch falsch ist, aber ich denke, es ist offensichtlich, was ich (ändern presentsDelivered
von House
in bestimmten x, y
Koordinaten) tun wollte. So ist meine Frage, wie man den index
Teil ändert, um auf die Karte zuzugreifen?
Jede Hilfe, Hinweis oder Noob-freundliche Lernmaterialien Tipps sind willkommen.
Entschuldigung für den Mangel an Dokumentation, wir arbeiten langsam daran. Zögern Sie nicht, zu Monokel gitter zu kommen, stellen Sie die Frage hier oder auf github. –