use*_*526 1 haskell syntax-error do-notation io-monad
为什么下面的代码会产生错误parse error on input ‘putStrLn’?
main = do line <- fmap reverse getLine
putStrLn $ "You said " ++ line ++ " backwards!"
putStrLn $ "Yes, you said " ++ line ++ " backwards!"
<interactive>:11:4: error: parse error on input ‘putStrLn’
Run Code Online (Sandbox Code Playgroud)
另外,为什么以下代码会产生错误parse error on input ‘let’?
main = do line <- getLine
let line' = reverse line
putStrLn $ "You said " ++ line' ++ " backwards!"
putStrLn $ "Yes, you said " ++ line' ++ " backwards!"
<interactive>:31:4: error: parse error on input ‘let’
Run Code Online (Sandbox Code Playgroud)
Jos*_*ica 13
两个片段都有同样的问题.如果将do块的第一个动作放在与do自身相同的行上,则仍然必须将do块中的其余动作缩进到第一个动作.有两种方法可以解决它:
main = do line <- fmap reverse getLine
putStrLn $ "You said " ++ line ++ " backwards!"
putStrLn $ "Yes, you said " ++ line ++ " backwards!"
Run Code Online (Sandbox Code Playgroud)
要么
main = do
line <- fmap reverse getLine
putStrLn $ "You said " ++ line ++ " backwards!"
putStrLn $ "Yes, you said " ++ line ++ " backwards!"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
179 次 |
| 最近记录: |