2012-01-26 42 views
2

我編譯此代碼,receving的「輸入解析錯誤‘=’'錯誤Haskell的錯誤 - 語法錯誤「=」

import System.IO 
import Data.List.Split 
main = do 
    handle <- openFile "ac/abc" ReadMode 
    contents <- hGetContents handle 
    let xs = splitOneOf "; \n " contents  
    print xs 
    readStrList contents = do 
     print contents 
    hClose handle 

請建議什麼是錯的

+0

你想用'readStrList'行完成什麼? – ehird

+0

其實我正在嘗試另一種遞歸方式,因爲for_要求hoogle.this working.thanks – code4fun

回答

7

問題在這些線路:

readStrList contents = do 
    print contents 

如果你試圖定義readStrList,那麼你需要把let在面前:

let readStrList contents = do 
     print contents 
+0

但是這個定義不會做任何事情,因爲'contents'會影響外部'contents',並且函數永遠不會被調用。 (並不是說你錯了,只是我無法制定該線路試圖做的事情的正面或反面,但可能不是這樣。) – Chuck

+0

@Chuck:我認爲它打算稍後在內部使用'do'塊。但我同意,很難說這裏有什麼意圖。 – ehird