Common Lisp:简化列表

时间:2014-12-08 19:24:47

标签: list lisp common-lisp

我正在尝试编写一些代码来查看嵌套列表,检查元素以查看它们是否可以合并。

如果cdr匹配,可以组合内部列表,并且车辆将与显示的代码一起添加。

在这种情况下,((1 4)(3 4)(2 4)(1 1))将简化为((6 4)(1 1))

(defun simplify (x)
    (if (equal (cdar x) (cdr (cadr x)))
        (cons (+ (caar x) (car (cadr x))) (cdar x)) 
        (cons (car x) (simplify(cdr x)))
    )
)

当前代码适用于简单列表,但较大的列表正在破坏。

0 个答案:

没有答案