Raymond Toy pushed to branch issue-240-add-hashtable-for-destructive-set-ops at cmucl / cmucl
Commits:
-
0d14e908
by Raymond Toy at 2023-08-22T07:19:14-07:00
1 changed file:
Changes:
... | ... | @@ -852,8 +852,6 @@ |
852 | 852 | (push item res)))
|
853 | 853 | res)))))
|
854 | 854 | |
855 | -(declaim (end-block))
|
|
856 | - |
|
857 | 855 | ;;; Destination and source are setf-able and many-evaluable. Sets the source
|
858 | 856 | ;;; to the cdr, and "conses" the 1st elt of source to destination.
|
859 | 857 | ;;;
|
... | ... | @@ -905,11 +903,6 @@ |
905 | 903 | (process (nth-value 1 (gethash (apply-key key (car list1)) hashtable))))
|
906 | 904 | (t
|
907 | 905 | (process (with-set-keys (member (apply-key key (car list1)) list2)))))
|
908 | - #+nil
|
|
909 | - (do () ((endp list1))
|
|
910 | - (if (with-set-keys (member (apply-key key (car list1)) list2))
|
|
911 | - (steve-splice list1 res)
|
|
912 | - (setq list1 (Cdr list1))))
|
|
913 | 906 | res)))
|
914 | 907 | |
915 | 908 | (defun nset-difference (list1 list2 &key key
|
... | ... | @@ -931,13 +924,10 @@ |
931 | 924 | (process (nth-value 1 (gethash (apply-key key (car list1)) hashtable))))
|
932 | 925 | (t
|
933 | 926 | (process (with-set-keys (member (apply-key key (car list1)) list2)))))
|
934 | - #+nil
|
|
935 | - (do () ((endp list1))
|
|
936 | - (if (not (with-set-keys (member (apply-key key (car list1)) list2)))
|
|
937 | - (steve-splice list1 res)
|
|
938 | - (setq list1 (cdr list1))))
|
|
939 | 927 | res)))
|
940 | 928 | |
929 | +(declaim (end-block))
|
|
930 | + |
|
941 | 931 | (defun set-exclusive-or (list1 list2 &key key
|
942 | 932 | (test #'eql testp) (test-not nil notp))
|
943 | 933 | "Return new list of elements appearing exactly once in LIST1 and LIST2."
|