Truth table: Difference between revisions

Rename Perl 6 -> Raku, alphabetize, minor clean-up
(→‎{{header|Pascal}}: Changes based on changes in the version in C (the source for this translation) + StringOfChar.)
(Rename Perl 6 -> Raku, alphabetize, minor clean-up)
Line 2,386:
T T T T T
</pre>
 
=={{header|Perl 6}}==
{{works with|Rakudo|2016.01}}
<lang perl6>use MONKEY-SEE-NO-EVAL;
 
sub MAIN ($x) {
my @n = $x.comb(/<ident>/);
my &fun = EVAL "-> {('\\' «~« @n).join(',')} \{ [{ (|@n,"so $x").join(',') }] \}";
 
say (|@n,$x).join("\t");
.join("\t").say for map &fun, flat map { .fmt("\%0{+@n}b").comb».Int».so }, 0 ..^ 2**@n;
say '';
}</lang>
{{out}}
<pre>
$ truthtable 'A ^ B'
A B A ^ B
False False False
False True True
True False True
True True False
 
$ truthtable 'foo & bar | baz'
foo bar baz foo & bar | baz
False False False False
False False True True
False True False False
False True True True
True False False False
True False True True
True True False True
True True True True
 
$ truthtable 'Jim & (Spock ^ Bones) | Scotty'
Jim Spock Bones Scotty Jim & (Spock ^ Bones) | Scotty
False False False False False
False False False True True
False False True False False
False False True True True
False True False False False
False True False True True
False True True False False
False True True True True
True False False False False
True False False True True
True False True False True
True False True True True
True True False False True
True True False True True
True True True False False
True True True True True</pre>
 
=={{header|Phix}}==
Line 3,009 ⟶ 2,958:
T T T => T
</pre>
 
=={{header|Raku}}==
(formerly Perl 6)
{{works with|Rakudo|2016.01}}
<lang perl6>use MONKEY-SEE-NO-EVAL;
 
sub MAIN ($x) {
my @n = $x.comb(/<ident>/);
my &fun = EVAL "-> {('\\' «~« @n).join(',')} \{ [{ (|@n,"so $x").join(',') }] \}";
 
say (|@n,$x).join("\t");
.join("\t").say for map &fun, flat map { .fmt("\%0{+@n}b").comb».Int».so }, 0 ..^ 2**@n;
say '';
}</lang>
{{out}}
<pre>
$ truthtable 'A ^ B'
A B A ^ B
False False False
False True True
True False True
True True False
 
$ truthtable 'foo & bar | baz'
foo bar baz foo & bar | baz
False False False False
False False True True
False True False False
False True True True
True False False False
True False True True
True True False True
True True True True
 
$ truthtable 'Jim & (Spock ^ Bones) | Scotty'
Jim Spock Bones Scotty Jim & (Spock ^ Bones) | Scotty
False False False False False
False False False True True
False False True False False
False False True True True
False True False False False
False True False True True
False True True False False
False True True True True
True False False False False
True False False True True
True False True False True
True False True True True
True True False False True
True True False True True
True True True False False
True True True True True</pre>
 
=={{header|REXX}}==
10,333

edits