Range consolidation: Difference between revisions

m
m (Formatting.)
Line 523:
func overlap(left, right) {
if max(left::s, left::e) > max(right::s, right::e) {
max(right::s, right::e) >= min(left::s, left::e)
} else {
max(left::s, left::e) >= min(right::s, right::e)
}
}
func consolidate(left, right) {
(s =: min(min(left::s, left::e), min(right::s, right::e)), e =: max(max(left::s, left::e), max(right::s, right::e)))
}
func normalize(range) {
(s =: min(range::s, range::e), e =: max(range::s, range::e))
}
for list in [
[ (s =: 1.1, e =: 2.2) ],
[ (s =: 6.1, e =: 7.2), (s =: 7.2, e =: 8.3) ],
[ (s =: 4.0, e =: 3.0), (s =: 2, e = e: 1) ],
[ (s =: 4.0, e =: 3.0), (s =: 2, e = e: 1), (s =: -1, e =: 2), (s =: 3.9, e =: 10) ],
[ (s =: 1.0, e =: 3.0), (s =: -6, e =: -1), (s =: -4, e =: -5), (s =: 8, e = e: 2), (s =: -6, e =: -6) ]
] {
var z = list.len()-1
Line 559:
list[i] = normalize(list[i])
}
list.sort((x,y) => x::s - y::s)
print(list)
}</lang>
Anonymous user