X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=lists.lisp;h=c18fe7e1982bf7ba03041b05315b34df815fcd54;hp=9793f273d863227009390e794295864af9e63536;hb=f03310d76a2458e5efb45b89f8e6b087db7f4ed1;hpb=7446fd15be7c6b489b347d47526eb973f9ed7438 diff --git a/lists.lisp b/lists.lisp index 9793f27..c18fe7e 100644 --- a/lists.lisp +++ b/lists.lisp @@ -192,3 +192,10 @@ (setf ,plist (append ,plist (list ,pkey ,value))))))) +(defun unique-slot-values (list slot &key (test 'eql)) + (let ((uniq '())) + (dolist (item list (nreverse uniq)) + (let ((value (slot-value item slot))) + (unless (find value uniq :test test) + (push value uniq)))))) +