Haskell 为线条生成图形
以下是我的尝试:Haskell 为线条生成图形,haskell,Haskell,以下是我的尝试: getLineGraphic :: Point -> Point -> ColourName -> Graphic getLineGraphic a b colourType = (Graphic (Line(a b) colourType (0,0))) 形状由 data Shape = Rectangle Side Side | Ellipse Side Side | Polygon [Point] |
getLineGraphic :: Point -> Point -> ColourName -> Graphic
getLineGraphic a b colourType = (Graphic (Line(a b) colourType (0,0)))
形状
由
data Shape = Rectangle Side Side
| Ellipse Side Side
| Polygon [Point]
| Line Point Point
deriving (Show)
而colorname
是
data ColourName
= Magenta
| Black
| Green
| Yellow
| Orange
| Cyan
deriving (Show)
以下是我得到的错误:
src\View.hs:54:34: error:
* Couldn't match expected type `Graphic'
with actual type `ColourName -> Point -> Graphic'
* Probable cause: `Graphic' is applied to too few arguments
In the expression: (Graphic (Line (a b) colourType (0, 0)))
In an equation for `getLineGraphic':
getLineGraphic a b colourType
= (Graphic (Line (a b) colourType (0, 0)))
|
54 | getLineGraphic a b colourType = (Graphic (Line(a b) colourType (0,0)))
在顶部是我的尝试。不知道我哪里出错了?对于这部分,翻译必须是
(0,0)
,这就是为什么会出现这种情况。不知道为什么会出现这个错误?任何帮助都将不胜感激!谢谢。虽然你没有发布MCVE,我只能猜测原因
(Graphic (Line(a b) colourType (0,0)))
这似乎是错误的。你可能想要
(Graphic (Line a b) colourType (0,0))
说明:与函数一样,Haskell中的数据构造函数也是通用的。所以
Line a b
与
((Line a) b)
而且完全不同于
Line (a b)
虽然你没有发布MCVE,我只能猜测原因
(Graphic (Line(a b) colourType (0,0)))
这似乎是错误的。你可能想要
(Graphic (Line a b) colourType (0,0))
说明:与函数一样,Haskell中的数据构造函数也是通用的。所以
Line a b
与
((Line a) b)
而且完全不同于
Line (a b)
在我看来,错误消息的格式应为。同样,考虑正确地编码你的代码……也请。您既没有定义
侧面
也没有定义图形
。如果定义是不相关的,请使其非常简单(只是一个Int
或什么),但不要忽略它。在我看来,错误消息的格式应为。同样,考虑正确地编码你的代码……也请。您既没有定义侧面
也没有定义图形
。如果定义是不相关的,请使其非常简单(只是一个Int
或其他什么),但不要忽略它。