(setf (cdr ,elem) ,val))
(,alist
(setf (cdr (last ,alist)) (list (cons ,akey ,val))))
- (t
- (setf ,alist (list (cons ,akey ,val)))))
+ (t
+ (setf ,alist (list (cons ,akey ,val)))))
,alist)))
(defun get-alist (key alist &key (test #'eql))
(update-alist key value alist :test test)
value)
+(defun remove-alist (key alist &key (test #'eql))
+ "Removes a key from an alist."
+ (remove key alist :test test :key #'car))
+
+(defun delete-alist (key alist &key (test #'eql))
+ "Deletes a key from an alist."
+ (delete key alist :test test :key #'car))
+
(defun alist-plist (alist)
(apply #'append (mapcar #'(lambda (x) (list (car x) (cdr x))) alist)))