Common Lisp中的嵌套列表讓我很困惑。這裏的問題是:在CLISP的嵌套列表和lambda表達式中遇到了一些問題
使用遞歸,讓(nested-list 'b '(a (b c) d))
回t
如果第一個參數出現在第二個參數(這可能是 嵌套列表),並nil
否則。
我試過find
,但它只適用於第一個參數是'(b c)
。 我把目光轉向了lambda表達式。我想首先將第二個參數 拉平,然後使用eq
來比較參數。
(defun nested-list (x y)
(cond
((null y)())
(t (append (lambda (flatten) (first y))
然後我卡住了。儘管我讀了很多有關lambda 的信息,但它仍令我困惑。當我需要 時,我不知道該如何回憶它,我知道funcall函數,但是你知道我只是不能得到 它。我剛學了Common Lisp 5天,所以我希望你能給我一個 提示。非常感謝!
該函數的名稱非常糟糕。它應該像'tree-contains-p'。 – Svante