((a b) (c d) (b e) (f e))というものがあった場合に,
((c d) (a f b e))というような形の同値関係で つながる要素を集めた集合からなる集合族(同値類)を 作る手続きを考えると,
(defun eclasses (data) (if (null data) nil (merge-eclasses (car data) (eclasses (cdr data))))) (defun merge-eclasses (eclass data) (cond ((null data) (list eclass)) ((intersection eclass (car data)) (merge-eclasses (union eclass (car data)) (cdr data))) (t (cons (car data) (merge-eclasses eclass (cdr data))))))という具合に定義ができ,
> (eclasses '((a b) (c b) (d e))) ((d e) (c a b)) > (eclasses '((a b) (c d) (b e) (f e))) ((c d) (a f b e))というような形になる.