【发布时间】:2011-04-24 02:10:33
【问题描述】:
我在从列表中提取列表时遇到问题。
(defun 删除 (a l) (条件 ((null l) nil) ((eq (car l) a) (删除 a (cdr l))) (t (cons (car l) (delete a (cdr l))))))它会删除列表 l 中的任何“a”,但如果 l 包含另一个列表并且 a 在该内部列表中,则我的程序无法到达该内部列表。
【问题讨论】:
-
不要将函数命名为 DELETE。该名称已被 Common Lisp 用作内置函数。
-
默认的相等测试也应该是EQL而不是EQ。
标签: lisp common-lisp