SketchyLISP Reference |
Copyright (C) 2007 Nils M Holm |
<<[integer?] | [Index] | [iota]>> |
Conformance: SketchyLISP Extension
Purpose: Compute the intersection of sets. Sets are represented by lists of unique members.
Arguments:
A*... - sets
Implementation:
(define (intersection . a*) (letrec ((_intersection (lambda (a b) (cond ((null? a) '()) ((member (car a) b) (cons (car a) (_intersection (cdr a) b))) (else (_intersection (cdr a) b)))))) (cond ((null? a*) '()) (else (fold-left _intersection (car a*) (cdr a*))))))
Example:
(intersection '(a b c) '(b c d) '(c d e)) => (c)
See also:
union,
unique,
member.
<<[integer?] | [Index] | [iota]>> |