出现错误时如何解决问题:不在范围内
Posted
技术标签:
【中文标题】出现错误时如何解决问题:不在范围内【英文标题】: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 ()
putStrn
和 putStrln
与 putStrLn
的名称不同。
【参考方案1】:
您要查找的 I/O 操作是 putStrLn
。请注意大写的 L——Haskell 符号区分大小写——就在最后的 n 之前,如“将字符串放在自己的 行 上”。
【讨论】:
以上是关于出现错误时如何解决问题:不在范围内的主要内容,如果未能解决你的问题,请参考以下文章
颤振:RangeError(索引):无效值:不在包含范围内0..27:28
IIS 7.5绑定中文域名转码启动站点报“值不在预期的范围内”