我定义为多项式算法的一些功能实现多项式乘法哈斯克尔
为了方便调试,我做多项式列表:
[5,3,7] -> 5 + 3*x + 7*x^2
在这里,我得到的功能add
已经工作:
add [1,9,7] [9,3] == [10,12,7]
但我有麻烦mul
:
mul [] _ = [0]
mul (x : xs) ys = add (map (*x) ys) (mul (0 : xs) ys)
正如我想象:
[4,5,6] * [1,2,3] = 4*[1,2,3] + [0,4,6]*[1,2,3]
它需要永远评价mul [1] [1,2,3]
,我无法找出什么地方错了。
在什么宇宙呢'(1 + 9X)+(9 + 3x)==(10 + 12x + 7x^2)'? – pat