RosettaCodeData/Task/Range-expansion/MiniScript/range-expansion.mini

25 lines
610 B
Plaintext

pullInt = function(chars)
numstr = chars.pull
while chars and chars[0] != "," and chars[0] != "-"
numstr = numstr + chars.pull
end while
return val(numstr)
end function
expandRange = function(s)
result = []
chars = s.split("")
while chars
num = pullInt(chars)
if not chars or chars.pull == "," then
result.push num
else
result = result + range(num, pullInt(chars))
chars.pull // skip "," after range
end if
end while
return result
end function
print expandRange("-6,-3--1,3-5,7-11,14,15,17-20")