Range consolidation: Difference between revisions

Added 11l
(Added Wren)
(Added 11l)
Line 51:
* [[Set of real numbers]]
<br><br>
 
=={{header|11l}}==
{{trans|Python}}
 
<lang 11l>F consolidate(ranges)
F normalize(s)
R sorted(s.filter(bounds -> !bounds.empty).map(bounds -> sorted(bounds)))
 
V norm = normalize(ranges)
L(&r1) norm
V i = L.index
I !r1.empty
L(j) i + 1 .< norm.len
V& r2 = norm[j]
I !r2.empty & r1.last >= r2[0]
r1 = [r1[0], max(r1.last, r2.last)]
r2.clear()
R norm.filter(rnge -> !rnge.empty)
 
L(s) [[[1.1, 2.2]],
[[6.1, 7.2], [7.2, 8.3]],
[[4.0, 3.0], [2.0, 1.0]],
[[4.0, 3.0], [2.0, 1.0], [-1.0, -2.0], [3.9, 10.0]],
[[1.0, 3.0], [-6.0, -1.0], [-4.0, -5.0], [8.0, 2.0], [-6.0, -6.0]]]
print(String(s)[1 .< (len)-1]‘ => ’String(consolidate(s))[1 .< (len)-1])/lang>
 
{{out}}
<pre>
[1.1, 2.2] => [1.1, 2.2]
[6.1, 7.2], [7.2, 8.3] => [6.1, 8.3]
[4, 3], [2, 1] => [1, 2], [3, 4]
[4, 3], [2, 1], [-1, -2], [3.9, 10] => [-2, -1], [1, 2], [3, 10]
[1, 3], [-6, -1], [-4, -5], [8, 2], [-6, -6] => [-6, -1], [1, 8]
</pre>
 
=={{header|Ada}}==
1,480

edits