【发布时间】:2012-09-30 06:38:27
【问题描述】:
我有一个 lisp 作业,我很难处理它。
我必须编写一个执行联合操作的函数。该函数接受 2 个输入,以原子或列表的形式,并联合每个元素,保持顺序并去除所有级别的括号。
函数的输出:
(my-union 'a 'b) ;; (a b)
(my-union 'a '(b)) ;; (a b)
(my-union '(a b) '(b c)) ;; (a b c)
(my-union '(((a))) '(b(c((d e))a))) ;; (a b c d e)
我对 lisp 还很陌生。 这是我到目前为止所写的内容,它仅适用于第三个示例:
(defun new-union (a b)
(if (not b)
a
(if (member (car b) a)
(new-union a (cdr b))
(new-union (append a (list (car b))) (cdr b)))))
任何帮助将不胜感激!
【问题讨论】:
标签: lisp common-lisp clisp