所以,我正在寻求一些帮助,我将如何解决这个问题。这就是功能。
getPolygonGraphic :: [Point] -> ColourName -> Graphic
getPolygonGraphic = ??
多边形定义为:
data Shape = Rectangle Side Side
| Ellipse Side Side
| Polygon [Point]
| Line Point Point
deriving (Show)
此外,' Side' =双倍
ColourName由以下人员定义:
data ColourName
= Magenta
| Black
| Green
| Yellow
| Orange
| Cyan
deriving (Show)
图形是:
data Graphic =
Graphic Shape
ColourName
Point
deriving (Show)
我尝试右边的' ='是有:
getPolygonGraphic :: [Point] -> ColourName -> Graphic
getPolygonGraphic = Graphic(Polygon) colourType ()
但是,我还没有添加任何要点,因为我不确定如何使用列表。任何帮助将不胜感激。
答案 0 :(得分:0)
我的主要疑问是,Point
以及Point
的定义应该是哪一个。通过查看其他一些问题,我猜测(Int, Int)
是(0, 0)
。
在此解决方案中,我使用Graphic
作为getPolygonGraphic :: [Point] -> ColourName -> Graphic
getPolygonGraphic ps c = Graphic (Polygon ps) c (0, 0)
构造函数接收的第三个值:
Point
在这里,我正在使用阵列上的第一个getPolygonGraphic :: [Point] -> ColourName -> Graphic
getPolygonGraphic (p:ps) c = Graphic (Polygon (p:ps)) c p
:
{{1}}
只需将该值更改为您应该使用的课程作业。