N'Abend,
im letzten Vorschlag läuft das Thread[] leer weil Plus[] evaluiert,
deshalb hier ein Ersatz:
(Tr[#2] - Tr[#1]) &[Sequence @@ Transpose[List @@ Interval[{u1, o1},
{u2, o2}, {u3, o3}, {u4, o4}]]]
Das dürfte dann wohl reichen im doppelten Wortsinne. Na, einer geht noch:
Fold[(#2 - #1) &, 0 , Flatten[List @@ Interval[{u1, o1}, {u2, o2}, {u3,
o3}, {u4, o4}]]]
Gruss
Udo.
Udo und Susanne Krause wrote:
Hallo zusammen,
dann sind hier noch fünf Konstrukte zum Erklären ... wie bereits gesehen
(Plus @@ Interval[{u1, o1}, {u2, o2}, {u3, o3}, {u4, o4}]) . {-1, 1}
(Plus @@ Interval[{u1, o1}, {u2, o2}, {u3, o3}, {u4, o4}]) /. {x_, y_}
-> y - x
(Interval[{u1, o1}, {u2, o2}, {u3, o3}, {u4, o4}] /. Interval -> Plus)
/. {x_, y_} -> y - x
und jetzt nochmal in die andere Richtung, d.h. statt mit den
Einzelintervallen zu arbeiten
wird erst aus den unteren bzw. oberen Grenzen je eine Liste gebildet:
(Thread[X @@ Interval[{u1, o1}, {u2, o2}, {u3, o3}, {u4, o4}]] . {-1,
1}) /. X -> Plus
(#2 - #1) &[Sequence @@ Thread[Plus @@ Interval[{u1, o1}, {u2, o2},
{u3, o3}, {u4, o4}]]]
Gruss
Udo.
woysch wrote:
Stuttgart, den 3. Mai 2005
Sehr geehrter Herr von Aschen,
vielen Dank, dass Sie einmal die Konstruktion einer solchen Funktion
schrittweise und recht verstaendlich erklaert haben !
Es waere erfreulich, wenn man das oefter so machen wuerde, denn sehr
oft sind die Anfragen ja Fragen von Anfaengern, die Erklaerungen mehr
als noetig brauchen koennen - vor allem, wenn sie selbst darauf
hinweisen !
Mit freundlichen Gruessen,
Gunter Woysch
------
From: Harald von Aschen
Subject: Re: Länge einer IntervalUnion (eines Intervals)
At 09:32 29.04.05 +0200, you wrote:
Hallo!
(#[[2]] - #[[1]]) &[(Plus @@ Interval[{3, 6}, {7, 26}, {29, 30}])]
Was macht das Teil?