Support for adding multiple elements to the list set.

This commit is contained in:
Dominik Pantůček 2023-04-07 22:31:59 +02:00
parent 0f8d237ed9
commit 6873a5b7ea

View file

@ -83,14 +83,20 @@
#t #t
(loop (cdr els))))))) (loop (cdr els)))))))
;; Adds given element to the list set ;; Adds given element(s) to the list set
(define (lset-add ls el) (define (lset-add ls . els)
(if (lset-member? ls el) (let loop ((els els)
ls (ls ls))
(cons TAG-LSET (if (null? els)
(cons (lset-meta ls) ls
(cons el (let ((el (car els)))
(lset-list ls)))))) (loop (cdr els)
(if (lset-member? ls el)
ls
(cons TAG-LSET
(cons (lset-meta ls)
(cons el
(lset-list ls))))))))))
;; Remove given element from the set ;; Remove given element from the set
(define (lset-remove ls el) (define (lset-remove ls el)