Middle three digits: Difference between revisions

Content deleted Content added
Loren (talk | contribs)
Couldn't resist adding XPL0
Grondilu (talk | contribs)
Perl 6 section
Line 141: Line 141:
middle_three_digits(0) returned: AssertionError('Need odd and >= 3 digits',)
middle_three_digits(0) returned: AssertionError('Need odd and >= 3 digits',)
>>> </lang>
>>> </lang>

=={{header|Perl 6}}==
<lang Perl6>

multi middle-three($n where * < 0) { say "$n is a negative number" }
multi middle-three($n where * %% 2) { say "$n has an even number of digits" }
multi middle-three($n where * < 3) { say "$n is too short" }
multi middle-three($n) { say "The three middle digits of $n are: ", $n.substr: ($n.chars - 3)/2, 3 }

middle-three($_) for
<123 12345 1234567 987654321 10001 -10001 -123 -100 100 -12345 1 2 -1 -10 2002 -2002 0>;</lang>
{{out}}
<pre>The three middle digits of 123 are: 123
The three middle digits of 12345 are: 234
The three middle digits of 1234567 are: 345
The three middle digits of 987654321 are: 654
The three middle digits of 10001 are: 000
-10001 is a negative number
-123 is a negative number
-100 is a negative number
100 has an even number of digits
-12345 is a negative number
1 is too short
2 has an even number of digits
-1 is a negative number
-10 is a negative number
2002 has an even number of digits
-2002 is a negative number
0 has an even number of digits</pre>


=={{header|XPL0}}==
=={{header|XPL0}}==