Liste con tag, scope delle variabili e l'operatore IN per la verifica.
Una lista immagazzina più valori in una sola variabile. I valori sono separati da ; e racchiusi tra [].
lista = [ciao ; salve]
Ogni elemento ha un indice che parte da 0. Gli indici negativi partono da destra: -1 è l'ultimo elemento.
Si possono aggiungere tag agli elementi con |:
lista = [saluto | ciao ; salve]
lista = [italiano | saluto | ciao ; salve] >> ciao ha due tag
Per accedere a un elemento:
lista[#0] >> per indice
lista[saluto] >> per tag
lista[tag1 ; tag2] >> per più tag
I valori di una lista sono sempre stringhe.
ADD nome_lista AT indice = valore >> inserisce spostando gli altri in avanti
ADD nome_lista AT = valore >> appende in fondo (indice omesso)
ADD nome_lista BY indice = valore >> sostituisce l'elemento a quell'indice
CANC nome_lista AT indice >> per indice
CANC nome_lista BY tag >> per tag
CANC nome_lista IS valore >> per valore
CANC nome_lista IN [tag1 ; tag2] >> per lista di tag
lista = [saluto | ciao]
TALK @lista >> [ciao]
SCREAM @lista >> [saluto | ciao]
Le liste possono contenere altre liste come elementi:
dati = [nomi | [Giulio ; Carlo] ; cognomi | [Bianchi ; Ferrari]]
Per default le variabili dichiarate dentro un blocco sono locali — non accessibili dall'esterno.
| Prefisso | Effetto |
|---|---|
RET | Rende la variabile globale |
DEFRET | Messo all'inizio del blocco, rende tutte le variabili del blocco globali per default |
TEMP | Con DEFRET attivo, rende la singola variabile locale |
FUN calcola()
RET #risultato = 42 >> accessibile ovunque
locale = ciao >> solo dentro questa funzione
FEND
FUN esempio()
DEFRET
#due = 2 >> globale (DEFRET)
TEMP #quattro = 4 >> locale
FEND
Verifica se un elemento è presente in una lista. Produce un booleano.
lista = [ciao ; salve]
IF esiste = ciao IN lista >> V
IF manca = arrivederci IN lista >> F