(defun simplify (x)
(if (and (not (null x)) (listp x))
(if (and (equal '(car x) '(cadr x)) (equal '(car x) 'not))
(simplify (cddr x))
(cons (car x) (simplify (cdr x)))
)
'nil
)
)
此lisp函數是爲了將表達式作爲參數,然後從中刪除多餘的'not'並將其返回。它檢查參數是否爲非空列表,如果不是(基本大小寫)則返回nil。如果不是空的,我想檢查car(x)= car(cdr(x))='not'。如果他們沒有被檢測到是一對'不是'那麼它應該遞歸併建立一個列表來返回。如果他們被檢測爲「不」,那麼它應該仍然遞歸,但也會跳過車(x)和車(cdr(x))。現在,所有這些代碼所做的就是返回一個與參數相同的表達式,所以我假設問題是我的嵌套if語句中的條件沒有正確設置,我如何檢查car(x)和cadr(x)都是'不'?lisp解析爲'不'
好的,我明白你在說什麼,如果我無法使它工作,我會研究它併發布更多的代碼。謝謝! – user1840602