繁体   English   中英

错误:“ det”的方程式具有不同数量的参数

[英]error: Equations for ‘det’ have different numbers of arguments

我正在尝试计算行列式,并且定义了det函数,如下所示:

det :: (Double,Double) -> (Double,Double) -> Double
det _ = 0.0
det [] = error "its Empty!"
det [x] = error "contains only one point!"
det (x1, y1) (x2, y2) = (x1*y2 + x2*y1)

我收到以下错误

Equations for ‘det’ have different numbers of arguments
      PolygonArea.hs:11:1-11
      PolygonArea.hs:14:1-39
Failed, modules loaded: none.

首先,类型(Double, Double)始终是两个Double的对,永远不会是空列表或单例列表。 其次,就像错误消息中所说的那样,您的det案例需要具有相同数量的参数,但是前三个给出了一个,而第四个给出了两个。

修复所有这些,您将获得

det :: (Double, Double) -> (Double, Double) -> Double 
det (x1, y1) (x2, y2) = (x1 * y2 + x2 * y1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM