Ich möchte meinen Zustand mit einer Funktion ändern, die vom alten Zustand abhängt, aber auch etwas Zufälligkeit einführt. Meine Funktion f
sieht wie folgt aus:Purescript-Halogen: Zustand durch wirkungsvolle Berechnung ändern
f :: State -> Eff (random :: RANDOM) State
Ich denke, mein Zustand rein sein sollte, und ich hatte keine Ahnung, wie Eff
loszuwerden, andere als unsafePerformEff
verwenden, also tat ich dies:
eval :: Query ~> H.ComponentDSL State Query g
eval (Tick next) = do
H.modify (unsafePerformEff <<< f)
pure next
Das funktioniert, aber es muss einen anderen, sichereren Weg geben. Ich habe bereits den zufälligen Effekt auf meine Hauptfunktion:
main :: Eff (H.HalogenEffects (random :: RANDOM)) Unit
Aber wie sollte eval
aussehen? Vielleicht funktioniert modify
hier nicht, und es gibt eine andere Möglichkeit, den Status zu aktualisieren?
Purescript Halogen, side effect (random number) funktioniert nicht für mich, seit f
hängt vom alten Zustand ab.
Okay, ich habe gerade Halogen 'Get' und' Set' gefunden, aber ich bekomme immer noch Typfehler. – stholzm