2014-01-21 73 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