RosettaCodeData/Task/Middle-three-digits/Lasso/middle-three-digits.lasso
2016-12-05 23:44:36 +01:00

22 lines
626 B
Text

define middlethree(value::integer) => {
local(
pos_value = math_abs(#value),
stringvalue = #pos_value -> asstring,
intlength = #stringvalue -> size,
middle = integer((#intlength + 1) / 2),
prefix = string(#value) -> padleading(15)& + ': '
)
#intlength < 3 ? return #prefix + 'Error: too few digits'
not(#intlength % 2) ? return #prefix + 'Error: even number of digits'
return #prefix + #stringvalue -> sub(#middle -1, 3)
}
'<pre>'
with number in array(123, 12345, 1234567, 987654321, 10001, -10001, -123, -100, 100, -12345, 1, 2, -1, -10, 2002, -2002, 0) do {^
middlethree(#number)
'<br />'
^}
'</pre>'