Ich arbeite gerade durch einige einfache Übungen in Haskell und fragte mich, ob es eine point-free Möglichkeit zur Konvertierung einer Wenn-Dann-sonst-Anweisung in einen Maybe
Typ: Nothing
zurückgegeben wurde, wenn die Bedingung falsch ist, und Just
die Eingabe wenn die Bedingung wahr ist.Gibt es eine point-free Möglichkeit, eine bedingte Prüfung in einen Maybe-Typ der Eingabe umzuwandeln?
Kurz gesagt, da einige:
maybeIf :: (a -> Bool) -> a -> Maybe a
maybeIf cond a = if cond a then Just a else Nothing
Gibt es eine Implementierung, die in Bezug auf a
Punkt frei ist? Ich habe mir auch eine konkretere Version angesehen, a -> Maybe a
, und ich habe das Gefühl, dass es irgendwo eine Antwort geben kann in Control.Arrow
. Da Maybe
jedoch ein Datentyp ist und if-else-Anweisungen den Datenfluss steuern, bin ich nicht sicher, ob es einen sauberen Weg dafür gibt.
'Data.Bool' hat' bool'. – dfeuer
Sehr interessant! Ich denke, dass mir diese Antwort am besten gefällt, da sie das meiste Material auf einfache und prägnante Weise zu lernen hat. Ich werde dies @Peter geben, da seine Antwort am lesbarsten ist und ich denke, dass ich nur um Punkt-frei gebeten habe. – stites