ProLOGO

Comandi elementari

forward n
(fd, avanti, a) fa avanzare la tartaruga di n pixel.
back n
(bk, indietro, i) fa indietreggiare la tartaruga di n pixel.
rightturn n
(right, rt, destra, d) fa girare la tartaruga verso destra di n gradi
leftturn n
(left, lt, sinistra, s) fa girare la tartaruga verso sinistra di n gradi
home
(tana) Fa tornare la tartaruga al centro dello schermo (punto (0,0)) con la testa rivolta in alto.
clearscreen
(cs, puliscischermo, ps) Cancellla lo schermo grafico e porta la tartaruga in posizione home
clean
(pulisci) Pulisce lo schermo senza spostare la tartaruga
cleartext
(ct, puliscitesto, pt) Cancella lo schermo testuale
print <valore>
(pr, stampa) Visualizza sullo schermo testuale un valore
make "var <valore>
(assegna, as) Assegna a una variabile un valore. Questo comando è descritto in dettaglio nella sezione 8.2
penup
(pu, sulapenna, su) Sposta in su la penna. La tartaruga si sposterà senza lasciare traccia
pendown
(pd, giulapenna, giu) Sposta in giù la penna. La tartaruga lascerà traccia
showturtle
(st, mostarta, mt) Mostra la tartaruga
hideturtle
(ht, nastarta, nt) Nasconde la tartaruga
setx x
(vaix) Sposta la tartaruga alla x specificata (senza cambiare la y)
sety y
(vaiy) Sposta la tartaruga alla y specificata (senza cambiare la x)

setxy x y, setpos lista
(vaixy - vaipos) Sposta la tartaruga alla posizione indicata (per setpos la lista deve essere di due elementi)
setheading n
(seth, angolo) Determina la direzione della tartaruga: l'angolo è dato in gradi dalla verticale in senso orario.
setpencolor 0-7 | "nomecolore
(pencolor, setpc, color, colorepenna, colore) Setta il colore della penna. Il colore può essere un numero da 0 a 7, oppure un nome ad esempio "black oppure una descrizione esadecimale ad esempio "#000000
setbgcolor 0-7 | "nomecolore
(setbackgroundcolor, bgcolor, coloresfondo, sfondo) Setta il colore di sfondo
defaultcolors
(coloristandard) Imposta i colori standard (nero su bianco)
printoutnames
(pons, ponames, showvars, mostravar) Mostra su schermo testuale il contenuto di tutte le variabili
eraseall
(erall, cancellatutto) Cancella il contenuto della memoria
label <word / lista>
(etichetta) Scrive un testo sulla finestra grafica, nella posizione corrente della tartaruga
load <lista>
(carica) Carica lo script del quale è dato il percorso e lo esegue.
about
(informazioni) Visualizza le informazioni sul ProLOGO

Controllo

repeat n [ istruzioni ]
(ripeti) Ripete n volte il blocco di istruzioni
if condizione [ istruzioni1 ] [ istruzioni2 ]
(se) Se la condizione è vera esegue istruzioni1 se è falsa istruzioni2
while condizione [ istruzioni ]
(mentre) Ripete il blocco di istruzioni fintanto che la condizione è vera

Tipi di dato

I tipi di dato utilizzati sono gli interi, le liste, le word e i booleani.

Interi

Per gli interi sono presenti gli operatori +, -, *, / (divisione intera), % (modulo)

Sono espressioni intere anche:

read
(leggi). Questa funzione (che può prendere come parametro un messaggio da visualizzare), restituisce un intero specificato dall'utente. Esempio: make "x read [ inserisci un numero ]. Il costrutto read non esiste nel LOGO standard nel quale si possono leggere solo liste con la funzione readlist descritta in seguito.

first <lista>
(primo) Restituisce il primo elemento di una lista (se è un intero)
last <lista>
(ultimo) Restituisce l'ultimo elemento di una lista
xcor
Restituisce la coordinata x corrente della tartaruga
ycor
Restituisce la coordinata y corrente della tartaruga
heading
(direzione) Restituisce l'angolo formato dalla testa della tartaruga con la verticale. Gli angoli sono misurati seguendo il senso orario.
length <lista>, length <word>
(lunghezza, lungh) Restituisce la lunghezza di una lista o di una word.

Liste

Una lista ha una testa che è un elemento di un tipo base (intero, booleano, word) e una coda che è ricorsivamente una lista. Le liste sono specificate all'interno di parentesi quadre e i vari elementi sono separati da spazi. L'operatore first restituisce l'elemento in testa alla lista, mentre butfirst restituisce la coda della lista. È presente anche l'operatore last che restituisce l'ultimo elemento. Gli elementi dentro le liste non vengono in nessun modo interpretati. Per questo motivo la lista [1+2] è una lista contenente i tre elementi 1, + e 2 e non la lista formata dall'unico elemento 3.

Questa scelta non è un problema perché è possibile aggiungere un nuovo elemento (intero, word o booleano) in testa alle liste grazie all'operatore push (che prende un elemento e una lista e restituisce una lista) ed è possibile unire due liste con l'operatore concat che restituisce l'append di due liste.

Un'espressione di tipo lista può essere quindi una lista specificata tra parentesi quadre, una variabile contenente una lista, oppure una lista ottenuta dai seguenti operatori:

readlist
(leggilista) Questo operatore, che può prendere anche un parametro che specifica un messaggio da visualizzare, restituisce una lista introdotta dall'utente. Nel LOGO standard anche per leggere un intero o una word si deve utilizzare readlist in combinazione con first, ad esempio scrivendo make "x first readlist. Anche in ProLOGO è possibile utilizzare first readlist in alternativa a read (che però ha il vantaggio di garantire che l'utente inserisca proprio un intero).

butfirst <lista>
(coda) Restituisce la coda di una lista
push <int/bool/word> <lista>
(metti) Restituisce la lista ottenuta inserendo in testa alla lista passata come secondo argomento il primo argomento
concat <lista1> <lista2>
Restituisce la lista ottenuta concatenando i due argomenti

Word

In LOGO una word è, in pratica, una stringa che non contiene spazi. Le stringhe con spazi sono sostituite da liste.

Una word si indica aprendo i doppi apici ma senza chiuderli (es. "stringa). Questa notazione è possibile perché le stringhe non contengono spazi.

Sulle word è possibile usare gli operatori first, butfirst e last che operano sulla stringa vista come lista di caratteri. Inoltre è possibile ottenere una word usando gli operatori first e last su una lista, nel caso che l'elemento non sia un intero.

Booleani

Un'espressione booleana è data dai valori di verità true e false, dalle relazioni tra numeri interi =,<,<=,>,>=,!= , dall'operatore empty applicato a una lista. Le espressioni booleane si possono combinare con gli operatori and, or e not. Naturalmente sono presenti anche le forme italiane che sono rispettivamente vero, falso, vuota, e, o, non oltre alla variante emptyp per empty.

Home page "seria"