Odd word problem: Difference between revisions
Content added Content deleted
No edit summary |
(→{{header|Perl 6}}: add entry) |
||
Line 863: | Line 863: | ||
} |
} |
||
}</lang> |
}</lang> |
||
=={{header|Perl 6}}== |
|||
A recursive solution, with the added feature that it treats each line separately. |
|||
<lang perl6>my &in = { $*IN.getc // last } |
|||
loop { |
|||
ew(in); |
|||
ow(in).print; |
|||
} |
|||
multi ew ($_ where /\w/) { .print; ew(in); } |
|||
multi ew ($_) { .print; next when "\n"; } |
|||
multi ow ($_ where /\w/) { my $r = ow(in); .print; $r; } |
|||
multi ow ($_) { $_; }</lang> |
|||
{{out}} |
|||
<pre>$ ./oddword |
|||
we,are;not,in,kansas;any,more. |
|||
we,era;not,ni,kansas;yna,more. |
|||
what,is,the;meaning,of:life. |
|||
what,si,the;gninaem,of:efil.</pre> |
|||
Note how the even/oddness is reset on the line boundary; if not, the second line might have started out in an odd state and reversed "what" instead of "is". The call to <tt>next</tt> prevents that by sending the loop back to its initial state. |
|||
=={{header|PicoLisp}}== |
=={{header|PicoLisp}}== |