2012-07-13 54 views
0

是否可以檢查給定的字符串是否代表$ PATH(%path%)中的可執行文件?它必須是可移植到Windows的。想法只是調用它並看到返回狀態不是apporiate, 非零可能意味着程序錯誤或程序未找到。 那麼,在代碼中,我想下面Haskell檢查程序是否可行

possibleCompilers = ["gcc", "icc", "foo", "bar.exe"] 
presentCompiler :: IO String 

回答

7

這項任務應該使用System.Directory.findExecutable是可行的。

possibleCompiler :: IO (Maybe String) 
possibleCompiler = check possibleCompilers 
    where 
    check [] = return Nothing 
    check (c:cs) = do 
     mbc <- findExecutable c 
     case mbc of 
     Just _ -> return mbc 
     Nothing -> check cs 

我改變了類型爲IO (Maybe String),因爲也許沒有找到候選人。