我是在處理haskell中的文件時使用的新手段。我編寫了一個代碼來檢查.c
文件中是否出現文字。單詞列在.txt
文件中。從Haskell中的文件中擴展縮寫詞
例如:
abbreviations.txt
ix=index
ctr=counter
tbl=table
另一個文件是:在遇到ix
應該擴大到index
和同爲ctr
和tbl
main.c
main()
{
ix = 1
for (ctr =1; ctr < 10; ctr++)
{
tbl[ctr] = ix
}
}
。
這是我寫檢查事件(尚未更換遇到的單詞)
import System.Environment
import System.IO
import Data.Char
import Control.Monad
import Data.Set
main = do
s <- getLine
f <- readFile "abbreviations.txt"
g <- readFile s
let dict = fromList (lines f)
mapM_ (spell dict) (words g)
spell d w = when (w `member` d) (putStrLn w)
上執行它給沒有輸出的代碼。
,而不是上的代碼,我試圖閱讀使用hgetLine
然後使用words
getLines' h = do
isEOF <- hIsEOF h
if isEOF then
return()
else
do
line <- hGetLine h
list<-remove (return (words line))
getLines' h
-- print list
main = do
inH <- openFile "abbreviations.txt" ReadMode
getLines' inH
hClose inH
remove [] = []
remove (x:xs)| x == "=" = remove xs
| otherwise = x:remove (xs)
但它讓我與IO(錯誤)的文件將其轉化成單詞列表,是否有任何其他方式我可以做到以下幾點。
我哪裏錯了?
謝謝你的幫助。
使用''if w' member'd then putStrLn d else return()''(else是強制性的)或使用'when'代替。 – chi 2015-02-11 09:40:31
我做了'spell d w = when(w'member' d)(putStrLn w)',仍然沒有輸出。 – anujuhi01 2015-02-11 09:45:58
檢查ghci中的字典類型。我懷疑你沒有按照你的預期生成地圖 – OllieB 2015-02-11 10:02:50