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
(loop (cdr els)))))))
;; Adds given element to the list set
(define (lset-add ls el)
(if (lset-member? ls el)
ls
(cons TAG-LSET
(cons (lset-meta ls)
(cons el
(lset-list ls))))))
;; Adds given element(s) to the list set
(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)
ls
(cons TAG-LSET
(cons (lset-meta ls)
(cons el
(lset-list ls))))))))))
;; Remove given element from the set
(define (lset-remove ls el)