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
|
||||
(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)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue