【问题标题】:Haskell ghci Variable not in scopeHaskell ghci 变量不在范围内
【发布时间】:2020-04-27 11:31:16
【问题描述】:

你好,我正在使用 sublime text 3 和我的 cmd shell 和 ghci。 我在 st3 中编写了以下函数:

testing :: Int -> Bool
testing 0 = True
testing 1 = False
testing n = testing(n mod 2)

我知道 haskell 提供了一个偶函数,但我们必须编写自己的偶函数,所以我想出了这个。当我将文件加载到 ghci 中时:

:cd <pathtofile>
:l myfile.hs

并尝试使用

执行我的功能
testing 10

我得到这个错误:

 Variable not in scope: testing :: t0 -> t

我可能应该提到 testing :: Int -> Bool 与斐波那契函数共享文件,但是 那不应该是问题吧? 任何帮助表示赞赏!

【问题讨论】:

  • 执行:l myfile.hs命令会发生什么?
  • 它说'好的,加载了一个模块'
  • 我尝试重新启动一切,发现我需要使用 mod 而不是 mod。现在工作得很好!

标签: haskell sublimetext3 ghci


【解决方案1】:

n mod 2 语法错误,这里有两种可能:

  • mod n 2
  • n `mod` 2

【讨论】:

  • 是的,在重新启动和重新加载后,还更改了 mod,现在一切正常,谢谢!
  • n `mod` 2 与mod n 2 完全相同
  • @larek 是的,我提供了两种可能性。但会重新评估它。
  • @ElBaulP 好东西。我在评论这个答案的原始版本,我的评论对现在的答案不太有意义:)
  • @larek,不用担心,谢谢,因为您的评论,我改进了答案,所以它很有用;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-12-18
  • 2020-11-14
  • 1970-01-01
  • 1970-01-01
  • 2021-01-05
  • 2017-09-30
  • 1970-01-01
相关资源
最近更新 更多