2014-01-21 74 views
0

我有一個輸出unicode的,看起來像這樣一個主要功能:我怎樣才能獲得的unicode輸出哈斯克爾

main = do 
    hSetEncoding stdout utf8 
    input <- getContents 
    mapM_ putStr $ myfunc input 

我怎麼能寫這個功能,無需做記號?

我得到<stdout>: commitBuffer: invalid argument (invalid character)當我嘗試編譯這個主要功能:

main = getContents >>= mapM_ putStr . myfunc 

回答

3

只需使用序列(>>):

main = do 
    hSetEncoding stdout utf8 
    input <- getContents 
    mapM_ putStr $ myfunc input 

~~> 

main = hSetEncoding stdout utf8 >> getContents >>= \input -> mapM_ putStr $ lines input 

~~> 

main = hSetEncoding stdout utf8 >> getContents >>= mapM_ putStr . lines