Jump to content

Power set: Difference between revisions

Line 1,307:
L = [[1],[2],[3],[4],[],[3,4],[2,3],[2,4],[2,3,4],[1,2],[1,3],[1,4],[1,3,4],[1,2,3],[1,2,4],[1,2,3,4]].
</pre>
 
===Constraint Handling Rules===
CHR is a programming language created by '''Professor Thom Frühwirth'''.<br>
Works with SWI-Prolog and module chr written by '''Tom Schrijvers''' and '''Jan Wielemaker'''.
<lang Prolog>:- use_module(library(chr)).
 
:- chr_constraint chr_power_set/2, chr_power_set/1, clean/0.
 
clean @ clean \ chr_power_set(_) <=> true.
clean @ clean <=> true.
 
only_one @ chr_power_set(A) \ chr_power_set(A) <=> true.
 
 
creation @ chr_power_set([H | T], A) <=>
append(A, [H], B),
chr_power_set(T, A),
chr_power_set(T, B),
chr_power_set(B).
 
 
empty_element @ chr_power_set([], _) <=> chr_power_set([]).
</lang>
Example of output :
<pre> ?- chr_power_set([1,2,3,4], []), findall(L, find_chr_constraint(chr_power_set(L)), LL), clean.
LL = [[1],[1,2],[1,2,3],[1,2,3,4],[1,2,4],[1,3],[1,3,4],[1,4],[2],[2,3],[2,3,4],[2,4],[3],[3,4],[4],[]] .
</pre>
 
=={{header|PureBasic}}==
This code is for console mode.
Anonymous user
Cookies help us deliver our services. By using our services, you agree to our use of cookies.