SketchyLISP Reference |
Copyright (C) 2007 Nils M Holm |
<<[union] | [Index] | [vector]>> |
Conformance: SketchyLISP Extension
Purpose: Transform a list into a set. A set is a list containing only unique elements.
Arguments:
A - list
Model:
(define unique (lambda (a) (cond ((null? a) a) ((member (car a) (cdr a)) (unique (cdr a))) (else (cons (car a) (unique (cdr a)))))))
Implementation:
(define (unique a) (letrec ((_unique (lambda (a r) (cond ((null? a) (reverse r)) ((member (car a) r) (_unique (cdr a) r)) (else (_unique (cdr a) (cons (car a) r))))))) (_unique a '())))
Example:
(unique '(a b b c d a)) => (a b c d)
See also:
intersection,
union,
member.
<<[union] | [Index] | [vector]>> |