|
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]>> |