我在一本书上看到了这个练习,我正在尝试做,但无法进一步。
我尝试为数据类型实现一个函数
area_t :: p -> Double
返回一般三角形的面积。
数据类型Triangle定义函数“area_t”。
我的当前代码:
data Triangle = MTriangle {
tP1 :: Point,
tP2 :: Point,
tP3 :: Point}
class Polygon p where
area_t :: p -> Float
instance Polygon Point where
instance Polygon Triangle where
area_t
错误:
Couldn't match expected type ‘Float’
with actual type ‘Point -> Point -> Float -> Point’
• The equation(s) for ‘area_t’ have three arguments,
but its type ‘Point -> Float’ has only one
1条答案
按热度按时间g6ll5ycj1#
点的面积为0,因此
Polygon Point
的示例(如果将点视为多边形)应为:那么你写的三角形面积的代码看起来不错,但是有两个问题:
1.您在三个独立的点而不是三角形上进行模式匹配
1.您正在生成一个点而不是一个普通浮点数
工作示例可能如下所示: