Middle three digits: Difference between revisions

Added Arturo implementation
(Added Arturo implementation)
Line 705:
-2002 -> (Even digit count)
0 -> (Less than 3 digits)</pre>
 
=={{header|Arturo}}==
 
<lang rebol>middleThree: function [num][
n: to :string abs num
if 3 > size n -> return "Number must have at least three digits"
if even? size n -> return "Number must have an odd number of digits"
 
middle: ((size n)/2)- 1
return slice n middle middle+2
]
 
samples: @[
123, 12345, 1234567, 987654321, 10001, neg 10001, neg 123, neg 100, 100, neg 12345,
1, 2, neg 1, neg 10, 2002, neg 2002, 0
]
 
loop samples 's [
print [pad to :string s 10 ":" middleThree s]
]</lang>
 
{{out}}
 
<pre> 123 : 123
12345 : 234
1234567 : 345
987654321 : 654
10001 : 000
-10001 : 000
-123 : 123
-100 : 100
100 : 100
-12345 : 234
1 : Number must have at least three digits
2 : Number must have at least three digits
-1 : Number must have at least three digits
-10 : Number must have at least three digits
2002 : Number must have an odd number of digits
-2002 : Number must have an odd number of digits
0 : Number must have at least three digits</pre>
 
=={{header|ATS}}==
1,532

edits