ghci'不在范围内:'消息

时间:2011-03-24 10:19:04

标签: haskell ghci

我正在阅读“了解你一个Haskell”教程,我就在这个部分:

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

当我尝试执行此行时,我得到:

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

我做错了什么?

2 个答案:

答案 0 :(得分:55)

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

此签名意味着您要定义一个函数lucky,该函数获得Integer并返回String

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

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

答案 1 :(得分:6)

如果要尝试使用GHCI,可以使用多行命令块

:{
lucky :: Int -> String
lucky a = show(a)
:}

:type lucky 
lucky :: Int -> String