IO [Maybe String]
filtresini, >>=
kullanarak listenin Just
değerlerini saklamak ve IO içeriğini korumak için filtreleyin. bağlama-operatör olmadanFiltre IO [Belki Dize] - [Dize]
-- returns Just, if the passed binary-name is not present on the system
binDoesntExist :: String -> IO (Maybe String)
binDoesntExist ...
Benim şimdiki çözüm:
missingBin :: [String] -> IO [String]
missingBin xs = do
ys <- mapM (\x -> binDoesntExist x) xs
return $ catMaybes ys
Şu anda Haskell öğrenme ve standart kütüphanenin farklı işlevleri nasıl kullanılacağını anlamaya çalışma var. Benim çözümüm işe yarıyor, ama sanırım daha temiz bir yol var.
Ve sadece eğlence için, aslında "binDoesn'tExist" ismini kesme işareti ile adlandırabilir ve yine de çalışacaktır. –