Definire funzioni con FUN e THEN, ed eseguire blocchi condizionati con GO.
Le funzioni sono blocchi di codice che vengono descritti senza essere eseguiti. Si eseguono solo quando vengono chiamati.
FUN nome_funzione(parametri)
...
return valore
FEND
return per funzione.FUN ciao()
TALK ciao
FEND
ciao()
<* Output: ciao *>
nome = Mario
FUN saluta(n)
TALK ciao @n!
#num = 5
return @num
FEND
val = saluta(nome)
TALK @val
<* Output:
ciao Mario!
5 *>
Forma semplificata di funzione: non accetta parametri e non può avere return. Si chiude con THEND.
THEN nome_then
...
THEND
I blocchi THEN possono essere chiamati solo all'interno di un GO block.
GO esegue una funzione o un blocco THEN in base a una condizione booleana.
GO @var_condizione @nome_funzione #ripetizioni
1 si può omettere. Il valore speciale #c ripete finché la condizione rimane V.IF se = V
THEN allora
TALK Evviva!
THEND
GO @se @allora >> esegue una volta
GO @se @allora #3 >> esegue 3 volte
#i = 0
IF loop = @i < 3
THEN conta
TALK @i
#i += 1
THEND
GO @loop @conta #c >> ripete finché i < 3
& e &&Dopo un GO si possono aggiungere rami alternativi:
& — equivale a elif in Python.&& — equivale a else in Python, si può porre solo alla fine.GO @cond1 @blocco1 & @cond2 @blocco2 && @blocco3
<* se cond1 → blocco1
altrimenti se cond2 → blocco2
altrimenti → blocco3 *>
@{}Invece di definire un THEN separato, si può scrivere il corpo direttamente nel GO. La condizione può essere anch'essa inline:
GO @{@n > 0} @{
TALK positivo
} && @{
TALK non positivo
}
La variabile speciale THISGO contiene la condizione del GO corrente e può essere modificata per interrompere il loop:
GO @{V} @{
TALK @ASKED
IF stop = @ASKED == fine
GO @stop @{ @THISGO = F }
}