我正在阅读"了解你一个Haskell"教程,我就是这个部分:
lucky :: (Integral a) => a -> String
Run Code Online (Sandbox Code Playgroud)
当我尝试执行此行时,我得到:
<interactive>:1:1: Not in scope: `lucky'
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
Yas*_*aev 57
这不是功能代码,它的功能签名只能与功能定义一起保存在模块中并加载到GHCi.
此签名意味着您将定义一个lucky获取Integer并返回a 的函数String.
但是,如果您使用GHCi作为交互式解释器编写函数,则可以让Haskell推断出函数的类型,例如:
ghci> let lucky x = show (x + 1)
ghci> :t lucky
lucky :: (Num a) => a -> String
Run Code Online (Sandbox Code Playgroud)
小智 8
如果要尝试使用GHCI,可以使用多行命令块
:{
lucky :: Int -> String
lucky a = show(a)
:}
:type lucky
lucky :: Int -> String
Run Code Online (Sandbox Code Playgroud)