Jump to content

Set consolidation: Difference between revisions

→‎{{header|C}}: Added Common Lisp
(→‎{{header|TXR}}: Argh; pasted the wrong code. Fixed now.)
(→‎{{header|C}}: Added Common Lisp)
Line 505:
return 0;
}</lang>
 
=={{header|Common Lisp}}==
Translation of [[#Racket|Racket]]
<lang lisp>(defun consolidate (ss)
(labels ((comb (cs s)
(cond ((null s) cs)
((null cs) (list s))
((null (intersection s (first cs)))
(cons (first cs) (comb (rest cs) s)))
((consolidate (cons (union s (first cs)) (rest cs)))))))
(reduce #'comb ss :initial-value nil)))</lang>
 
{{Out}}
<pre>> (consolidate '((a b) (c d)))
((A B) (C D))
> (consolidate '((a b) (b c)))
((C A B))
> (consolidate '((a b) (c d) (d b)))
((C D A B))
> (consolidate '((h i k) (a b) (c d) (d b) (f g h)))
((F G H I K) (C D A B))</pre>
 
=={{header|D}}==
Cookies help us deliver our services. By using our services, you agree to our use of cookies.