我正在学习教程,并且具有以下类型定义:
data Point = Point Float Float deriving (Show)
data Shape = Circle Point Float | Rectangle Point Point deriving (Show)
将具有这些定义的文件加载到ghci中,并希望使用来定义函数
surface :: Shape -> Float
我收到错误消息变量不在范围内:surface :: Shape-> Float 。
我什至看不到我在哪里有变量,更不用说为什么我得到这个错误了!任何帮助表示高度赞赏。
答案 0 :(得分:2)
GHCi找到surface
的类型签名,但由于没有该函数的主体,因此无法解析文件。在Haskell中,不能声明函数,但不能定义函数。
如果您仍然需要加载文件,则可以添加surface = undefined
data Point = Point Float Float deriving (Show)
data Shape = Circle Point Float | Rectangle Point Point deriving (Show)
surface :: Shape -> Float
surface = undefined
答案 1 :(得分:1)
在ghci
中使用多行输入
Prelude> :{
Prelude| surface :: Shape -> Float
Prelude| surface = undefined
Prelude| :}