我有一个函数可以将两个多项式相加,但是如果两个多项式的总和为0,那么答案中仍会返回。我需要能够从列表中删除0个系数及其术语。
我的多项式被表示为5x ^ 2是((5((2 x))))
例如,如果多项式为2x ^ 2 + 3y + 0x ^ 2,则看起来像。
((5 ((2 x)))
(3 ((1 y)))
(0 ((2 x))))
我有一些代码可以识别列表中的第一个列表是否具有0系数,但我很难通过列表进行递归,如果系数为0则删除。
这是我的代码:
(defun my-remove(a)
(if(null a)
a
(if(equal (car(car a)) 0)
t
nil)))
目前,如果第一个列表的系数为0,则返回true,否则返回false。
答案 0 :(得分:1)
CL-USER 52 > (remove 0 '((5 ((2 x)))
(3 ((1 y)))
(0 ((2 x))))
:key #'first)
((5 ((2 X))) (3 ((1 Y))))