Iterare con FOR su liste e numeri, e usare etichette per riesecuzione.
Serve a iterare gli elementi di una lista.
FOR @nome_lista #[inizio ; fine ; salto] = @funzione()
0.-1 (fine lista).1.Tutti e tre i valori in #[] sono opzionali e il separatore ; va comunque incluso se si omette solo quello di mezzo.
| Variabile | Contenuto |
|---|---|
ONITEM | Il valore dell'elemento corrente |
ONINDEX | L'indice dell'elemento corrente |
ONTAG | Il/i tag dell'elemento corrente |
numeri = [10 ; 20 ; 30]
FOR @numeri = @{TALK @ONINDEX: @ONITEM}
<* Output:
0: 10
1: 20
2: 30 *>
>> Iterazione al contrario
FOR @numeri #[;;-1] = @{TALK @ONITEM}
<* Output: 30 / 20 / 10 *>
Esiste la lista speciale NUMBERS che contiene tutti i numeri reali, dove ogni numero ha se stesso come indice. Utile per iterare range numerici:
FOR @NUMBERS #[1 ; 5] = @{TALK @ONITEM}
<* Output: 1 / 2 / 3 / 4 / 5 *>
Qualsiasi istruzione può ricevere un'etichetta con la sintassi parola_chiave:etichetta. Per rieseguire l'istruzione associata a un'etichetta si usa *etichetta.
TALK:saluto Ciao!
*saluto >> riesegue il TALK:saluto
Se a una stessa etichetta vengono assegnate più istruzioni, *etichetta esegue l'ultima.
TALK:V — attiva un input persistente a fine output. L'input viene salvato nella variabile speciale ASKED.
TALK:F — disattiva l'input persistente.