ghci'不在范围:'消息

我正在通过“学习你一个Haskell”教程,我在这一部分:

lucky :: (Integral a) => a -> String 

当我尝试执行这一行时,我得到:

 <interactive>:1:1: Not in scope: `lucky' 

我究竟做错了什么?

这不是一个function代码,它是function签名,只能与function定义一起保存在模块中,并加载到GHCi中。

这个签名意味着你要定义一个lucky的函数来获得一个Integer并返回一个String

但是,如果您使用GHCi作为交互式解释器编写函数,则可以让Haskell推断您的函数的types,例如:

 ghci> let lucky x = show (x + 1) ghci> :t lucky lucky :: (Num a) => a -> String