【问题标题】:How to resolve issues when getting error: Not in scope出现错误时如何解决问题:不在范围内
【发布时间】:2012-07-27 04:44:33
【问题描述】:
*Main> :t putStrn

:1:1:
不在范围内:`putStrn'
也许您的意思是其中之一:
  `putStr'(从 Prelude 导入),
  `putStrLn'(从 Prelude 导入)

请注意,我正在使用 haskell 模式在 emacs 中练习 haskell 编程。

即使在使用终端时,我也会收到以下错误:

optimight@optimight:~$ ghci
GHCi,版本 7.4.1:http://www.haskell.org/ghc/ :?求助
加载包 ghc-prim ... 链接 ... 完成。
加载包 integer-gmp ... 链接 ... 完成。
正在加载包库...链接...完成。
Prelude> :set prompt ghci>
ghci>:t putStrln

:1:1:
    不在范围内:`putStrln'
    也许您的意思是其中之一:
      `putStrLn'(从 Prelude 导入),
      `putStr'(从 Prelude 导入)

【问题讨论】:

  • 你确定有一个名为putStrn的函数吗?
  • @Pikaurd:是的,我在参考这本书后使用-Learn you a Haskell for Good-topic 9.1,其中写道“让我们检查一下我们写的内容。首先,让我们看看类型函数 putStrLn.ghci> :t putStrLn putStrLn :: String -> IO () ghci> :t putStrLn "hello, world" putStrLn "hello, world" :: IO ()
  • putStrnputStrlnputStrLn 的名称不同。

标签: haskell emacs haskell-platform haskell-mode haskell-prelude


【解决方案1】:

您要查找的 I/O 操作是 putStrLn。请注意大写的 L——Haskell 符号区分大小写——就在最后的 n 之前,如“将字符串放在自己的 上”。

【讨论】:

    猜你喜欢
    • 2022-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-06-30
    • 2015-06-02
    • 2021-10-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多