Power set: Difference between revisions

(→‎{{header|C}}: rewrite to remove size limit)
(→‎{{header|Perl}}: show output)
Line 1,511:
=={{header|Perl}}==
 
Recursive solution:
Using a recursive function:
 
<lang perl>sub powerset {
@_ ? map { $_, [$_[0], @$_] } powerset(@_[1..$#_]) : [];
}</lang>
 
Using listList folding solution:
 
<lang perl>use List::Util qw(reduce);
 
sub powerset {
@{ (reduce { [@$a, map([@$_, $b], @$a)] } [[]], @_) }
}</lang>
 
Usage and output:
 
<lang perl>print "{".join(", ", @$_)."}\n" for powerset(1, 2, 3, 4);</lang>
<pre>
{}
{1}
{2}
{1, 2}
{3}
{1, 3}
{2, 3}
{1, 2, 3}
{4}
{1, 4}
{2, 4}
{1, 2, 4}
{3, 4}
{1, 3, 4}
{2, 3, 4}
{1, 2, 3, 4}
</pre>
 
=={{header|Perl 6}}==
Anonymous user