【发布时间】:2015-02-18 13:01:14
【问题描述】:
我一直在寻找其他类似的问题,但我仍然无法解决这里的问题。我会先说是的,这是家庭作业,但我现在不知道我错在哪里。任务是重写我们给定的递归算法,如果 n 为 0,则返回 1,如果 n 小于 5,则返回 n,否则执行此处的最后一行代码:
alg n = if (n == 0)
then 1
else if (n<5)
then n
else alg(n-1) * alg(n-2) * alg(n-3) * alg(n-4)
我得到的错误是 WinGHCi 中的解析错误(可能是缩进不正确或括号不匹配)。我已经查看了很多关于如何在 Haskell 中正确构建 if 语句的文章,但我仍然是初学者,所以我不知道我哪里出错了。如果有人能够告诉我其中有什么不正确以避免将来出现错误,我将非常感激。
【问题讨论】:
-
在文本编辑器中编写代码并将其导入 GHCI 对我来说没有任何语法错误。您是否在 GHCI 中以交互方式输入此内容?
-
我正在使用 Notepad++ 编写代码并使用 WinGHCi 执行它。
标签: haskell if-statement syntax