często znaleźć samodzielnie pisania kodu, który wygląda tak:Karmienie jednowartościowy wyraz w chyba albo gdy
import System.Directory (doesFileExist)
import Control.Monad (unless)
example = do
fileExists <- doesFileExist "wombat.txt"
unless fileExists $ putStrLn "Guess I should create the file, huh?"
Być może lepszym sposobem jest:
example2 =
doesFileExist "wombat.txt" >>=
(\b -> unless b $ putStrLn "Guess I should create the file, huh?")
Co to jest najlepszym podejściem tutaj?
Wiązanie z 'chyba że' z '(>> =)' można wykonać za pomocą sekcji, '' coś >> = ('chyba że 'someAction)' ', jeśli' someAction' jest krótkie. Jeśli nie jest krótki, myślę, że 'do bool <- coś; chyba że bool $ cokolwiek "jest lepsze". –
Możesz użyć 'mfilter', który działa jeszcze lepiej, jeśli osadzisz swoje obliczenia w' MaybeT'. –