Verwenden von when / unless, ohne das Ergebnis einer monadischen Aktion zu speichern

8

Gibt es eine Möglichkeit, dies ohne die Variable x ?

zu schreiben? %Vor%

Ich stelle mir etwas ähnlich wie LambdaCase vor:

%Vor%

aber ohne das zweite Fallmuster, offensichtlich.

    
Joe Hillenbrand 07.07.2015, 17:22
quelle

2 Antworten

10

Die einfachste Antwort ist, die do von Hand zu entziffern und dann zu sehen, ob Sie etwas Code schreiben können, der äquivalent, aber hübscher ist. Ihre do desugars an:

%Vor%

Also muss die Antwort wie checker bar >>= f aussehen, wobei f äquivalent zu

ist %Vor%

Nun, das ist so, als würde man when teilweise anwenden, richtig? Außer du willst das zweite Argument anstelle des ersten liefern, also musst du flip it:

%Vor%     
amalloy 07.07.2015, 18:57
quelle
15

In Control.Monad.Extra , check out whenM . Für Ihr Beispiel wäre das:

%Vor%

Hier ist ein längeres Beispiel, um Ihnen zu zeigen, wie Sie mehrere Aussagen in Ihrer whenM Struktur machen können.

%Vor%     
mhwombat 07.07.2015 17:30
quelle

Tags und Links