Es gibt mehrere Möglichkeiten. In diesem speziellen Fall:
putStrLn . fromMaybe "Error"
Aber das ist ein ziemlich spezieller Fall. Etwas weniger besonderes wäre, die Maybe
catamorphism zu verwenden:
maybe (putStrLn "Error") putStrLn
Viele Typen in Haskell kommen mit einem ähnlichen catamorphism, die verwendet werden können case
zu vermeiden. Aber der allgemeinsten Fall ist die besondere Spracherweiterung als LambdaCase
bekannt zu verwenden, die Sie
schreiben können
\case
Just x -> putStrLn x
Nothing -> putStrLn "Error"
Im Gegensatz zu fromMaybe
(die Maybe
besondere ist und die Regelmäßigkeit der hier verwendeten Fälle) oder der catamorphism (die Speziell für Typen, die einen bieten), kann dies verwendet werden, um jedes Muster-passende Lambda zu anonymisieren.
"Nur x -> putStrLn x" ist immer noch nicht point-free. – immibis