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")