;; -*- Mode: Irken -*- ;; simple set datatype using lists. (define (make-set l =) (define (in x) (let loop ((l l)) (match l with () -> #f (hd . tl) -> (if (= hd x) #t (loop tl))))) (define (add! x) (if (in x) #u (set! l (list:cons x l)))) (define (get) l) ;; unfort the record field name syntax is limited to A-Z0-9_ {add=add! in=in get=get} )