Du kannst nicht mehr als 25 Themen auswählen
Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.
|
- (import "cxr.slime")
-
- (define key-not-found-index -1)
-
- (define (make-set :rest vals)
- (set-type
- (if vals
- (list vals)
- '(()))
- :set))
-
- (define (set-find set val)
- (let ((values (car set)))
- (define (inner values current-index)
- (cond ((null? values) key-not-found-index)
- ((= (car values) val) current-index)
- (else (inner (cdr values) (+ 1 current-index)))))
- (inner values 0)))
-
- (define (set-contains? set val)
- (unless (= (set-find set val) key-not-found-index)
- t))
-
- (define (set-insert! set value)
- (unless (set-contains? set value)
- (mutate set (pair (pair value (first set)) ()))
- (set-type set :set))
- set)
|