RosettaCodeData/Task/Range-expansion/Phix/range-expansion.phix
2017-09-25 22:28:19 +02:00

21 lines
620 B
Text

function range_expansion(string range)
sequence s = split(range,','),
res = {}
for i=1 to length(s) do
string si = s[i]
integer k = find('-',si,2)
if k=0 then
res = append(res,to_number(si))
else
integer startrange = to_number(si[1..k-1])
integer endofrange = to_number(si[k+1..$])
for l=startrange to endofrange do
res = append(res,l)
end for
end if
end for
return res
end function
?range_expansion("-6,-3-1,3-5,7-11,14,15,17-20")
?range_expansion("-6,-3--1,3-5,7-11,14,15,17-20")