如何過濾IO [Maybe String]
以僅使用>>=
保留列表的Just
值並保留IO上下文。將IO [String]過濾爲IO [String]
-- returns Just, if the passed binary-name is not present on the system
binDoesntExist :: String -> IO (Maybe String)
binDoesntExist ...
我沒有綁定運營商當前的解決方案:
missingBin :: [String] -> IO [String]
missingBin xs = do
ys <- mapM (\x -> binDoesntExist x) xs
return $ catMaybes ys
我目前正在學習Haskell,並試圖瞭解如何使用標準庫的不同功能。我的解決方案有效,但我想有一個更清晰的方法。
只是爲了好玩,實際上你可以用撇號命名它'binDoesn'tExist',它仍然可以工作。 –