【问题标题】:Haskell parse error (possibly incorrect indentation or mismatched brackets)Haskell 解析错误(可能缩进不正确或括号不匹配)
【发布时间】:2014-05-05 20:09:46
【问题描述】:

我正在尝试编写一个反转文本的 IO 程序,但它无法正常工作。我试过调整reverse函数的缩进,还是不行。

完整的错误信息是:

reverse.hs:11:1: 解析错误(可能是缩进不正确或括号不匹配)

--reverse a file
module Main where

import System.IO

main = do
  putStrLn "reading a file..."
  theInput <- readFile "input.txt"
  writeFile "output.txt" $ reverse` theInput

reverse` :: String -> String
reverse` [] = []
reverse` (_:xs) = reverse xs : _ 

【问题讨论】:

  • 这是一个严重的错误
  • @IfLoop 你的双关语几乎没有用。
  • @jozefg 你的双关语只是懒惰。

标签: haskell


【解决方案1】:

您不能将反引号用作标识符的一部分。它是使用函数名作为内联运算符的语法标记(例如compare `on` thing)。您可能想要一个正常的刻度线 (')。

【讨论】:

  • 所以它有效!谢谢你。错误信息误导了我。
猜你喜欢
  • 2021-01-25
  • 2015-01-26
  • 2018-01-21
  • 1970-01-01
  • 2022-09-28
  • 1970-01-01
  • 2017-06-06
  • 2016-09-28
  • 2021-07-02
相关资源
最近更新 更多