IO [Maybe String]
をフィルタリングする方法は、を使用してリストのJust
の値を保持し、IOコンテキストを保持するだけです。バインド・オペレータなしフィルタIO [多分文字列]からIO [文字列]
-- 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'という名前にすることができます。それでも動作します。 –