【发布时间】:2016-07-18 15:57:22
【问题描述】:
我正在尝试采用列表形式的多项式表示(例如 [3, 2, 1] 是 3x^2 + 2x + 1)并通过对多项式执行 apply 和 x 的数字来评估它。多项式将针对 x 进行计算。
这是我的代码:
newtype Poly a = P [a]
apply :: Num a => Poly a -> Num a -> Num a
apply (P p) x = if (i > 0) then (x * ((head p) ^ i)) + (apply (P (tail p)) x) else p
where i = length p
问题是当我尝试编译这段代码时,我得到一个我不明白的错误:
应为类型,但“Num a”具有类型“GHC.Prim.Constraint”
在“应用”的类型签名中:
apply :: Num a => Poly a -> Num a -> Num a
【问题讨论】: