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)
(let loop ((els els)
(ls ls))
(if (null? els)
ls
(let ((el (car els)))
(loop (cdr els)
(if (lset-member? ls el) (if (lset-member? ls el)
ls ls
(cons TAG-LSET (cons TAG-LSET
(cons (lset-meta ls) (cons (lset-meta ls)
(cons el (cons el
(lset-list ls)))))) (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)