X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Flist.lisp;h=173dedf18d2917b96104a07cbc6136e37a273e0a;hb=643483ceecc115d48b10f095b31b5eca62e2228b;hp=bbb755735e1f26627e94c1bfe372cf3776c9eabc;hpb=7478a2dfeb75791695ea643ecaa56adba8d77139;p=jscl.git diff --git a/src/list.lisp b/src/list.lisp index bbb7557..173dedf 100644 --- a/src/list.lisp +++ b/src/list.lisp @@ -116,6 +116,12 @@ (tree-equal (car tree1) (car tree2) :test test) (tree-equal (cdr tree1) (cdr tree2) :test test)))) +(defun tailp (object list) + (do ((tail list (cdr tail))) + ((atom tail) (eq object tail)) + (when (eql tail object) + (return-from tailp t)))) + (defun subst (new old tree &key (key #'identity) (test #'eql)) (cond ((funcall test (funcall key tree) (funcall key old))