什麼是執行IO Bool
測試列表,然後在最後執行的操作,如果Bool
中的任何一個是False
哈斯克爾:單一故障後,執行操作
如果我有功能的最好方式檢查是否給定的文件在目錄中存在
check :: FilePath -> IO()
check s = do
r <- doesFileExist s
putStrLn s ++ if r then " exists" else " does not exist"
我想能夠檢查的文件列表,然後在根據最終執行其他功能,如果所有的測試通過呢?
目前我只能想到的東西,如
allPassed = do
l <- mapM doesFileExist [`list of files`]
if all (==True) l then "all ok" else "meh"
所以,你正在尋找的東西像一個'allM'功能,'all'一個單子相同呢? –
我的推薦:不要打擾。只要做你想做的事情與文件,並捕捉異常,如果他們不存在。畢竟,在執行此檢查和下一步之間它們可能會停止存在,所以如果您想要一個強大的程序,則必須處理該異常! –
我們不知道OP的應用程序,但有時可能需要在開始昂貴或耗時的操作之前執行「飛行前檢查」,以確保它不會因「明顯」原因而失敗。 – ErikR