Die Funktion iterate
Die Funktion iterate ermöglicht einzelne Items der Datenausgabe
zu zählen und das Resultat der Zählung in einer lokalen Variable
abzulegen. Die Funktion gehorcht folgender Syntax:
iterate[Variablenname,Schlüsselwort,Zahl]
Als lokale Variable kann eine beliebiger Name angegeben
werden, der den Regeln für Namen unter
kleio folgen muß.
Als Schlüsselworte können jeweils die Begriffe
- initialize
- add
- sub
- multiply
- divide
angegeben werden. Die Schlüsselworte können jeweils
auf den ersten Buchstaben abgekürzt werden.
Das Schlüsselwert initialize erlaubt, den Wert der
Variable zu initialisieren. Der Wert der angegebenen Zahl entspricht in
diesem Falle dem Startwert. Wird die Variable nicht expliziert initialisiert,
so gilt automatisch der Ausgangswert "0". Die Angabe
iterate[zahl,initialize,10]
weist also der Variable "zahl" den Wert "10" zu.
Das Schlüsselwert add ordnet an, daß die jeweilige
Items der Ausgabe addiert werden sollen. Der Wert von Zahl gibt an, welchen
Wert jedes der addierten items haben soll. Die folgende Aufgabe addiert
jedes Vorkommen des Elements "kuenstler". Dabei wird jeder Mehrfacheintrag
mit "1" gezählt. Der Startwert ist "0":
query name=piranesi;part=:kuenstler
write part=/iterate[wert,add,1]:kuenstler,:number[:dump[wert],text]
Diese Aufgabe liefert folgendes Resultat:
row (1 = "38") : kuenstler Giovanni Battista
Piranesi
1
row (2 = "39") : kuenstler Giovanni Battista Piranesi
2
row (3 = "40") : kuenstler Giovanni Battista Piranesi
3
...
row (534 = "33858") : kuenstler Andrea Palladio
517
row (535 = "33859") : kuenstler Andrea Palladio
518
row (536 = "33861") : kuenstler Andrea Palladio
519
Es heißt also, daß alle Elemente in der Ausgabe bis
zum letzten (Nr. 519) durchgezählt worden sind. Der Wert wurde mit der
Funktion dump[] zurückgegeben.
Das Schlüsselwort sub ordnet analog eine Subtraktion
an. Stattdessen könnten freilich auch das Wort add angegeben und
bei Zahl ein negativer Wert gesetzt werden.
Das Schlüsselwort multiply ordnet eine Multiplikation
an. In diesem Fall ist der Wert von Zahl der gegebene Multiplikator.
Das Schlüsselwort divide ordnet eine Division an.
In diesem Fall ist der Wert von Zahl der gegebene Divisor.
Als Zahlenwert bei "Zahl" kann eine beliebige ganze Zahl mit
positivem oder negativem Vorzeichen eingetragen werden.