首页 > 解决方案 > Haskell 中 `putStrLn` 的基本错误。VScode 扩展 Haskelly

问题描述

main = do line <- getLine
        let line' = reverse line
        putStrLn $ "You said " ++ line' ++ " backwards!"
        putStrLn $ "Yes, you really said " ++ line ++ " backwards!"

错误:

$ stack runhaskell "c:\Users\FruitfulApproach\Desktop\Haskell\test.hs"

C:\Users\FruitfulApproach\Desktop\Haskell\test.hs:4:5: error:
    parse error on input `putStrLn'
  |
4 |     putStrLn $ "You said " ++ line' ++ " backwards!"
  |     ^^^^^^^^

我还尝试在缩进行上使用单个选项卡。

这是我的标签 - >空格设置:

制表符到空格设置截图

我也尝试过重新启动 VSCode。

提前致谢!

标签: haskellvisual-studio-codehaskell-stack

解决方案


我相信您的代码缩进不足。尝试这个:

main = do line <- getLine
          let line' = reverse line
          putStrLn $ "You said " ++ line' ++ " backwards!"
          putStrLn $ "Yes, you really said " ++ line ++ " backwards!"

具体来说,您后面的行do应该与后面的内容一样缩进,即line <- getLine.


推荐阅读