Middle three digits: Difference between revisions

Added Wren
(Added AppleScript.)
(Added Wren)
Line 5,054:
(mid3 0)
=> nil</pre>
 
=={{header|Wren}}==
{{libheader|Wren-fmt}}
<lang ecmascript>import "/fmt" for Fmt
 
var middle3 = Fn.new { |n|
if (n < 0) n = -n
var s = "%(n)"
var c = s.count
if (c < 3) return "Minimum is 3 digits, only has %(c)."
if (c%2 == 0) return "Number of digits must be odd, %(c) is even."
if (c == 3) return s
var d = (c - 3)/2
return s[d..d+2]
}
 
var a = [123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345,
1, 2, -1, -10, 2002, -2002, 0]
 
for (e in a) {
System.print("%(Fmt.s(9, e)) -> %(middle3.call(e))")
}</lang>
 
{{out}}
<pre>
123 -> 123
12345 -> 234
1234567 -> 345
987654321 -> 654
10001 -> 000
-10001 -> 000
-123 -> 123
-100 -> 100
100 -> 100
-12345 -> 234
1 -> Minimum is 3 digits, only has 1.
2 -> Minimum is 3 digits, only has 1.
-1 -> Minimum is 3 digits, only has 1.
-10 -> Minimum is 3 digits, only has 2.
2002 -> Number of digits must be odd, 4 is even.
-2002 -> Number of digits must be odd, 4 is even.
0 -> Minimum is 3 digits, only has 1.
</pre>
 
=={{header|XPL0}}==
9,485

edits