Wie filtert man IO [Maybe String]
, um nur die Just
Werte der Liste unter Verwendung zu behalten und den IO Kontext zu behalten.Filter IO [Maybe String] zu IO [String]
-- returns Just, if the passed binary-name is not present on the system
binDoesntExist :: String -> IO (Maybe String)
binDoesntExist ...
Meine aktuelle Lösung ohne den bind-Operator:
missingBin :: [String] -> IO [String]
missingBin xs = do
ys <- mapM (\x -> binDoesntExist x) xs
return $ catMaybes ys
ich lerne derzeit Haskell und versuchen zu verstehen, wie die verschiedenen Funktionen der Standardbibliothek zu verwenden. Meine Lösung funktioniert, aber ich denke, es gibt einen saubereren Weg.
Und nur zum Spaß, können Sie es wirklich nennen mit dem Apostroph "binDoesnistExist", und es wird immer noch funktionieren. –