Ich habe derzeit Code, der wie folgt aussieht:Suche nach fehlenden Staats Combinator für Objektiv
do
x <- use foo
foo <~ runFoo x
wo foo
ist ein Lens
zu einem Foo
Feld und runFoo :: MonadState m => Foo -> m Foo
Ich denke, sollte es eine Möglichkeit geben, zu tun diese Operation in einer Zeile, aber ich kann es nicht finden. Ich denke, es sollte einen Kommentar haben wie:
(????) :: MonadState s m => Lens' s a -> (a -> m a) -> m a
Fragen:
- Gibt es eine solche combinator existieren? Wenn ja, was ist das?
- Wenn ich auf eine andere Frage wie diese stoße, was ist der beste Weg, um danach zu suchen (dh Normalerweise würde ich dies nur in Hoogle schreiben, aber ich hatte kein Glück mit der Objektivbibliothek)
- das ist eigentlich ein primitiver Kombinator in Control.Monad gefunden? (Ich werde ein wenig verlegen, wenn dies ist noch eine weitere Aufgabe für den Kleisli Pfeil)
Haben Sie tatsächlich etwas mehr getan, dann einfach Hagkells "do" -Notation? Diese Technik kann verwendet werden, um zwei beliebige Zeilen in einer "do" -Anweisung zu kombinieren. Ich möchte 'use' und' (<~) 'zusammenführen. –