Next: この文書について...
Up: 16 集合
Previous: 16.5 集合族の同等性
2つの要素a,bの間に同値関係がある場合に,
(a b)という形で表すとして,
ある集合Aにおける,複数の要素間に同値関係をあらわす
集合として,
たとえば,
((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))
というような形になる.
generated through LaTeX2HTML. M.Inaba 平成18年5月7日