【问题标题】:Haskell Parse Error - Naked Expression at Top LevelHaskell 解析错误 - 顶级的裸表达式
【发布时间】:2012-06-17 05:29:36
【问题描述】:

我有一个haskell 文件test.hs。 在这个文件中我写了一个函数

doubleMe x: x + x

这是该文件 test.hs 中唯一的函数。 在 ghci 命令提示符下,我输入了不带引号的 ":l test.hs"。 出现以下错误:

compiling main  <test.hs interpreted>
test.hs:1:1 Parse error: naked expression at top level
Failed: modules loaded:none

这个错误的原因是什么。

我经历过 Haskell Error - Naked Expression at Top Level

what is parse error: naked expression at top level?

它没有帮助。

【问题讨论】:

  • 看起来您正在尝试编写 Python,而不是 Haskell。它们的语法不一样。

标签: haskell


【解决方案1】:

你需要=而不是:,所以:

doubleMe x = x + x

如果您尝试使用:,GHC 会将其解析为在doubleMe xx + x 上使用: 运算符。这是一个函数应用程序,所以它是一个表达式(表达式基本上是一系列具有结果的标记)。由于它没有包含在函数或变量声明中,因此它是一个“裸表达式”,这是一个错误。

【讨论】:

  • re: 最后一段 - 如果那是一个表达式,默认情况下它会被解析为(doubleMe x) : (x + x),因为(:) 的优先级低于(+)
猜你喜欢
  • 2011-10-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-22
  • 2012-01-23
  • 2013-01-29
  • 1970-01-01
  • 2010-12-06
相关资源
最近更新 更多