두 개의 다항식을 더하는 함수가 있는데, 두 다항식의 합이 0이되면 여전히 답안에서 반환됩니다. 내 목록에서 0 개의 계수와 해당 항을 제거 할 수 있어야합니다.Lisp의 목록에서 하위 목록을 제거합니다.
내 다항식 표현 같은 배^2인지 ((5- ((2 ×)))) 예를 들어
다항식이^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를 반환합니다.
왜 Common Lisp'remove' 기능을 사용하지 않습니까? –
'(조건이 nil 인 경우)'단지'조건'입니다. –
구문에 어려움을 겪고 있습니다. 나는이 예제를 보았다. (remove '(1 2)'((1 2) (1 3)) : test # 'equal)'그러나 나는 무엇을 평등하게 두어야할지 모르겠다. 0을 넣으려고했으나 작동하지 않았습니다. – JaAnTr