Anonymous user
Range consolidation: Difference between revisions
m
→{{header|Dyalect}}
(→{{header|Wren}}: Now uses new core library method.) |
|||
Line 711:
<lang dyalect>type Pt(s, e)
func Pt.
func Pt.
func Pt.
let rng = [
[ Pt(1.1, 2.2) ],
Line 723:
[ Pt(1.0, 3.0), Pt(-6, -1), Pt(-4, -5), Pt(8, 2), Pt(-6, -6) ]
]
func overlap(left, right) =>
right.
when left.
else left.
func consolidate(left, right) => Pt(min(left.
func normalize(range) => Pt(range.
for list in rng {
var z = list.
while z >= 1 {
for y in (z - 1)^-1..0 when overlap(list[z], list[y]) {
list[y] = consolidate(list[z], list[y])
break list.
}
z -= 1
}
for i in list.
list[i] = normalize(list[i])
}
list.
print(list)
}</lang>
|