[Tustep-Liste] zusammenfassen von Registereinträgen

Michael Trauth trauth at uni-trier.de
Mo Aug 17 20:15:57 CEST 2009


Liebe Mitstreiter,

bei Herrn Schälkles Lösung mußte ich erst ein
bißchen überlegen, bis ich sie verstanden hatte.
Unter dem (gar nicht unwichtigen) Aspekt der spontanen
Verständlichkeit hat mir persönlich Herrn Sapplers
Lösung am besten gefallen. Man kann diese noch ein
kleines bißchen schlanker gestalten mit

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$$ MODE TUSCRIPT
SET alt = "1'3'4'5'7'9'10'12"
SET inc = -999, neu = ""
LOOP tmp = alt
  IF (tmp .eq. inc) then
     SET neu = APPEND (neu, "-", tmp)
  ELSE
     SET neu = APPEND (neu, "'", tmp)
  END IF
  SET inc = tmp+1
END LOOP
SET neu = EXCHANGE (neu, ":>/<|-<>>/>|->/::")
PRINT neu
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

oder gar, wenn's auf die Zahl der Zeilen ankommt,
verdichten zu:

<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
$$ MODE TUSCRIPT
SET alt = "1'3'4'5'7'9'10'12"
SET inc = -999, neu = ""
LOOP tmp = alt
  IF (tmp .EQ. inc) SET neu = APPEND (neu, "-", tmp)
  IF (tmp .NE. inc) SET neu = APPEND (neu, "'", tmp)
  SET inc = tmp+1
END LOOP
SET neu = EXCHANGE (neu, ":>/<|-<>>/>|->/::")
PRINT neu
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

Weiß jemand von den Diskussionsteilnehmern, warum
diese letztere Form der beiden IFs
: IF (tmp .EQ. inc) SET neu = APPEND (...
: IF (tmp .NE. inc) SET neu = APPEND (...
aus programmiertechnischer Sicht verpönt ist und
man besser
: IF ... THEN
: ELSE
: END IF
notieren sollte? Sind es nur Performance-Gründe
(zwei IFs kosten mehr Zeit als ein IF...THEN...ELSE),
oder spricht irgendeine prinzipielle Erwägung dagegen?


Einen entspannten Feierabend wünscht reihum

Michael Trauth




---------------------------------------------------------------
Dr. Michael Trauth                  e-mail: trauth at uni-trier.de
Rechenzentrum                       office: Tel. 0651-201-3413
der Universitaet                            Fax  0651-201-3921
Universitaetsring                secretary: Tel. 0651-201-3417
D-54286 Trier
---------------------------------------------------------------



Mehr Informationen über die Mailingliste Tustep-Liste