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."
|