RosettaCodeData/Task/Range-expansion/Nim/range-expansion.nim

25 lines
624 B
Nim

import parseutils, strutils
proc expandRange(input: string): string =
var output: seq[string]
for range in input.split(','):
var sep = range.find('-', 1)
if sep > 0: # parse range
var first = -1
if range.substr(0, sep-1).parseInt(first) == 0:
break
var last = -1
if range.substr(sep+1).parseInt(last) == 0:
break
for i in first..last:
output.add($i)
else: # parse single number
var n = -1
if range.parseInt(n) > 0:
output.add($n)
else:
break
return output.join(",")
echo("-6,-3--1,3-5,7-11,14,15,17-20".expandRange)