AW: [Allegro] Rücksprung aus Unterprogrammen

Fischer, Thomas fischer at sub.uni-goettingen.de
Mi Okt 27 10:23:39 CEST 2010


Hallo Herr Berger,

> > ich versuche mal den Zusammenhang an einem Beispiel zu erklären.
> > Ich habe in einem Präsentationsskript (also einer
> Exportparameterdatei) das folgende Unterprogramm:
> >
> > #(C     sucht Link, gibt ersten aus
> > #cc =fk
> > #-c
> > #ufk +- e' ' c':/' F'[ ,;]' dfk
> > #ufk +c b'[ ,;]' =fk e0
> > #)C
> > das nach einer Webadresse (ein Wort mit ":/" darin) in der
> > aktuellen Kategorie sucht, den ersten solchen Link ausgibt
> > und dann zurückkehrt, indem es die "Sprungmarke" "+-" benutzt
> > (so alleinstehend ist das nicht recht sinnvoll, aber als
> > Illustration hoffentlich ausreichend).
> > Meine Frage war, ob das ein legitimes Vorgehen ist, da im
> > Handbuch nichts über das Verlassen von Unterprogrammen (außer
> > dem auch von Ihnen erwähnten Ende des Unterprogramms) steht.
> > Herrn Eversbergs Antwort war -kurzgefasst- "Ja".
>
> Aber ob dabei nun die Ausgabe des Arbeitstexts (der
> ermittelten URL) erfolgt oder nicht, ist m.W. nicht definiert.

Stimmt, das sollte irgendwo klar beschrieben sein.
In meinem Fall wird der Text ausgegeben.

> > Hintergrund ist dass
> >
> > #ufk +#)C e' ' c':/' F'[ ,;]' dfk
> > meines Wissens nicht existiert und
> >
> > #ufk +#99 e' ' c':/' F'[ ,;]' dfk
> > #ufk +c b'[ ,;]' =fk e0
> > #99 e0 #zz 0
> > #)C
> > aufwendiger und weniger übersichtlich ist.
>
> aber - weil #ufk ja bereits geloescht ist, geht auch
>
> #ufk e' ' c':/' F'[ ,;]' dfk
> #ufk +c b'[ ,;]' =fk e0
> #)C

In diesem Falle ja, aber es geht mir ja um eine grundsätzliche Lösung für den Ausstieg aus einem Unterprogramm.

>
> Die letzte Zeile kann uebrigens zu Instabilitaeten fuehren,
> aus Erfahrung nutze ich daher stets eine Konstruktion
>
> #ufk +c y0 dfk b'[ ,;]' b0 Afk

Die Doppelbedeutung des "=" als Zuweisung und Vergleich hat mich immer wieder irritiert, scheint in diesem Fall aber keine Probleme zu bereiten.

> [Ansonsten kann die Sache auch ganz ohne Schleife
> parametriert werden, das sollte auch effizienter sein]

Hätten Sie einen Vorschlag? Hintergrund meiner Lösung ist, dass ich an dieser Stelle nicht weiß, welches Protokoll da benutzt wird. Fast immer http, aber auch https, ftp, sftp sind möglich.

Mit freundlichen Grüßen
Thomas Fischer



Mehr Informationen über die Mailingliste Allegro