Support for adding multiple elements to the list set.
This commit is contained in:
parent
0f8d237ed9
commit
6873a5b7ea
1 changed files with 14 additions and 8 deletions
|
@ -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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue