(unless (find elem l1)
(setq l1 (append l1 (list elem))))))
-(defun remove-from-tree-if (pred tree atom-processor)
+(defun remove-from-tree-if (pred tree &optional atom-processor)
"Strip from tree of atoms that satistify predicate"
(if (atom tree)
(unless (funcall pred tree)
(progn
(setf (cdr ,elem) ,value)
,alist)
- (setf ,alist (acons ,akey ,value ,alist))))))
+ (setf ,alist (acons ,akey ,value ,alist))))))
(defun get-alist (key alist &key (test #'eql))
(cdr (assoc key alist :test test)))
(defun (setf get-alist) (value key alist &key (test #'eql))
+ "This doesn't work to add a field which alist value is only modified locally"
(update-alist key value alist :test test)
value)