HASKELL编程的作业。。。。初级入门不会做,请帮忙提点下,万分感谢!!

moduleCell(Cell(..),Coord(..),CellState(..),ishead,isNeighbouringCoord)where--一个cell是... module Cell (Cell (..),
Coord (..),
CellState(..),
ishead,
isNeighbouringCoord
)
where

--一个cell是由Coord和state组成
data Cell = Cell {cellCoord :: Coord, cellState :: Cellstate}
deriving (show, Read)

data Coord = Coord {xCoord, yCoord::Integer}
deriving (Ord, Eq, Show, Read)

data Cellstate = Head
|Tail
|Conductor
deriving (Show, Read)

下面2个部分是我自己写的,帮忙看下哪里有错为什么不可以load。。。谢谢!!(两条横线后面的是要求提示。。。)
--如果cell是head,得True,否则就是False
isHead::Cell->Bool
isHead cellState
|cellState == Head = True
|otherwise = False

--如果x和y是临近的整数,得True,否则就是False
isNeighbouringCoord::Coord->Coord->Bool
isNeighbouringCoord xCoord yCoord
|xCoord == (yCoord+1)||(yCoord-1) = True
|otherwise = False
展开
 我来答
蒲公英随风飘舞哈
2012-03-24 · TA获得超过1431个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:524万
展开全部
很多问题,首先是大小写的问题,模块导出了ishead和CellState,而你下面声明的isHead的H是大写的,Cellstate的s是小写的

第二,你的isHead的类型声明应该是Cellstate -> Bool

第三,你的isNeighbouringCoord中的xCoord,yCoord 不知道是什么,但看上去应该来自于一个Coord中的xCoord和yCoord,那么你的类型应该是Coord->Bool,而且匹配也不能这么匹配
另外的 (yCoord+1)||(yCoord-1) yCoord肯定是个整数,这个逻辑运算左右两边肯定得都是Bool类型的
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式