[Allegro] Nochmals: ik,x etc.
Fischer, Thomas
fischer at sub.uni-goettingen.de
Di Apr 19 10:58:01 CEST 2011
Lieber Herr Eversberg,
ich möchte gerne eine endgültige Klärung zum Verhalten der Indikatoraktionen erreichen. Können Sie meine Aussagen überprüfen und verifizieren (notfalls mit Blick au den Quellcode) und dann die Dokumentation entsprechend aktualisieren?
1. Die Indikatorprüfungen ik,x, Ik,x, vk,x und Vk,x testen die am Anfang der Zeile angegebene Variable (z.B. #30 oder #uxy) darauf, ob der Wert an der Stelle k geich/ungleich x bzw. kleiner/größer als x ist. Dieser Vergleich findet mit dem noch unmodifizierten Wert statt, also *vor* Anwendung etwaiger Manipulationen.
(Herr Eversberg: hier bin ich mir nicht ganz sicher, was längenverändernde Umkodierungen betrifft.)
Mit #cc hat der Test per se nichts zu tun.
Beispiel:
#uxy p'Auf 5 steht ein a!' e '!' i5,a
gibt 'Auf 5 steht ein a!' genau dann aus, wenn auf der fünften Position von #uxy 'a' steht. Bei dieser Zählung wird die Kategorienlänge tN aus der Konfiguration +1 für die Mehrfachkennung eingerechnet. Kleinere Ziffern testen den *Namen* der Variablen.
2. Die Variable #cc speichert den *Namen* der zuletzt aufgerufenen Kategorie. Dieser bleibt innerhalb eines Unterprogramms konstant, der *Inhalt* der Variablen kann aber verändert werden. Die Indikatoraktionen #ik,x und #Ik,x vergleichen mit dem *Inhalt* dieser Variablen bzw. ihrem Namen, wenn die Ziffer k kleiner als tN+2 ist.
Beispiel:
#uxy P>A e0
#+#
#(A
22='Auf 5 steht ein u!'
#uxy p'auf' e3 =xy
#i5,u 22
#)A
gibt 'Auf 5 steht ein u!' aus, unabhängig von der Belegung von #uxy vor dem Aufruf des Unterprogramms A.
Natürlich muss #uxy vorher definiert sein.
Mit freundlichen Grüßen
Thomas Fischer
Mehr Informationen über die Mailingliste Allegro