Jump to content

Range modifications: Difference between revisions

m
sort input
m (sort input)
Line 234:
function parse(::Type{RangeSequence}, s)
seq = UnitRange[]
entries = sort!(split(s, r"\s*,\s*"))
for e in entries
startstop = split(e, r"\:|\-")
Line 288:
end
 
function stringprint(rio::UnitRangeIO, weird=trueseq::RangeSequence)
r1return print(io, r2join(map(r =-> "$(r.start, )-$(r.stop)", reduce(seq)), ","))
weird && return "$r1-$r2"
return r1 == r2 ? "$r1" : abs(r1 - r2) > 1 ? "$r1-$r2" : "$r1, $r2"
end
 
print(io::IO, seq::RangeSequence) = print(io, join(map(string, reduce(seq)), ","))
 
 
const seq = parse(RangeSequence, "")
Line 340 ⟶ 335:
println(" removed 9 => ", seq3)
removeinteger!(seq3, 7)
println(" removed 7 => ", seq3, "\n")
 
println("Parse \"10-25, 1-5, 27-30\" => ", parse(RangeSequence, "10-25, 1-5, 27-30"))
</lang>{{out}}
<pre>
Line 366 ⟶ 363:
removed 9 => 1-5,7-7,10-25,27-30
removed 7 => 1-5,10-25,27-30
 
Parse "10-25, 1-5, 27-30" => 1-5,10-25,27-30
</pre>
 
4,105

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.