Contenuto

# LibreLogo

LibreLogo è un ambiente di programmazione semplice simile a Logo, con la grafica della tartaruga vettoriale, adatto all'insegnamento del computer (programmazione ed elaborazione testi), la tipografia digitale e il disegno grafico. Visitate http://www.numbertext.org/logo/librelogo.pdf.

## Barra degli strumenti di LibreLogo

La barra degli strumenti di LibreLogo (Visualizza - Barre degli strumenti - Logo) contiene le icone per il movimento della tartaruga, per l'avvio e il blocco del programma, per inizializzare e pulire lo schermo e per l'evidenziazione/traduzione della sintassi, oltre a una barra di immissione (riga di comando).

## Icone di movimento tartaruga

Sono l'equivalente dei comandi Logo “FORWARD 10”, “BACK 10”, “LEFT 15”, “RIGHT 15”. Se fate clic su una delle icone verrà scorsa la pagina e posizionato il fuoco alla posizione della tartaruga.

## Eseguire un programma Logo

Fate clic sull'icona "Avvia un programma Logo" per eseguire il testo (o soltanto la parte selezionata) del documento Writer come un programma LibreLogo. In un documento vuoto viene scritto ed eseguito in un programma di esempio.

Fate clic sull'icona "Stop" per fermare l'esecuzione del programma.

## Inizializza

Fate clic sull'icona “Inizializza” per inizializzare la posizione e le impostazioni della tartaruga.

## Pulisci schermo

Fare clic sull'icona “Pulisci schermo” per rimuovere, dal documento, gli oggetti disegnati.

## Editor di programma/evidenziatore di sintassi/traduttore

L'icona "Bacchetta magica" imposta un layout a 2 pagine per la modifica del programma, estende e converte in maiuscolo i comandi Logo abbreviati e in minuscolo nel documento Writer. Modificare la lingua del documento (tramite LibreOffice - Preferenze Strumenti- Opzioni - Lingue e impostazioni locali - Generale - Occidentale) e fare clic su questa icona per tradurre il programma Logo nella lingua prescelta.

## Riga di comando

Premete Invio nella riga di comando per eseguire il suo contenuto. Per fermare il programma usate l'icona “Ferma".

Tenete premuto il tasto Invio per ripetere la riga di comando, per esempio, sulla sequenza di comando che segue:

     FORWARD 200 LEFT 89

Per ripristinare la linea di comando fate clic sulla stessa per tre volte o premete Cmd Ctrl+A per selezionare i comandi precedenti e digitate i nuovi comandi.

## Interfaccia utente grafica delle impostazioni di base della tartaruga

La forma della tartaruga di LibreLogo è un normale oggetto di disegno a dimensione fissa. È possibile posizionarla e ruotarla in modalità standard, tramite mouse e icona Ruota della barra degli strumenti Proprietà oggetto di disegno. Modificare le impostazioni dello spessore linea, del colore linea e del colore area della tartaruga per configurare gli attributi PENSIZE, PENCOLOR e FILLCOLOR di LibreLogo.

## Modifica del programma

I disegni e i programmi LibreLogo usano lo stesso documento Writer. La superficie dove LibreLogo disegna si trova nella prima pagina del documento Writer. Per ottenere un layout di programmazione a due pagine più comodo, potete inserire un'interruzione di pagina prima dei programmi LibreLogo e impostare la dimensione del carattere e dell'ingrandimento: la pagina sinistra (la prima) conterrà il disegno, la pagina destra (la seconda) sarà riservata ai programmi LibreLogo.

# Linguaggio di programmazione LibreLogo

LibreLogo è un linguaggio di programmazione simile a Logo facilmente traducibile, localizzato in varie lingue dalle comunità di lingua LibreOffice. È compatibile con i vecchi sistemi Logo, per i casi di semplici programmi Logo utilizzati nel campo dell'educazione, per es.

     TO triangolo :dimensione
     REPEAT 3 [
       FORWARD :dimensione
       LEFT 120
     ]
     END

     triangolo 10 triangolo 100 triangolo 200

## Differenze rispetto al linguaggio di programmazione Logo

- Gli elementi delle liste sono separati da virgola: POSITION [0, 0]

- Le liste e i blocchi del programma sono differenti

- - I blocchi del programma necessitano di uno spazio o una nuova riga dopo la parentesi: REPEAT 10 [ FORWARD 10 LEFT 36 ]

  - Le liste necessitano parentesi non separate da uno spazio: POSITION [0, 0] e non: POSITION [ 0, 0 ]

- Le dichiarazioni di funzione in una sola riga non sono supportate (TO e END devono trovarsi su righe diverse).

## Altre caratteristiche di LibreLogo

- I due punti prima dei nomi di variabile sono facoltativi.

       TO triangolo dimensione
         REPEAT 3 [ FORWARD size LEFT 120 ]
       END

- La notazione di stringa supporta anche l'ortografia e la sintassi Python.

       PRINT "parola ; sintassi originale Logo
       PRINT “Testo arbitrario.” ; ortografia, Writer
       PRINT 'Testo arbitrario.' ; sintassi Python

- Gestione delle liste e delle stringhe Python

       PRINT “testo”[2] ; stampa “s”
       PRINT “testo”[1:3] ; stampa “es”

- Ciclo FOR tipo Python

- Dichiarazione variabili tipo Python:

       x = 15
       PRINT x

- Non esistono funzioni di ricerca aggiuntive:

       PRINT FILLCOLOR
       p = POSITION
       PRINT p
       REPEAT 10 [ POSITION ANY POSITION p ]

- Parentesi opzionali nelle chiamate di funzioni

       TO stella dimensione colore
       FILLCOLOR colore
       REPEAT 5 [ LEFT 72 FORWARD dimensione RIGHT 144 FORWARD dimensione ]
       FILL
       END

       stella 100 “red”
       stella(100, “green”)
       stella(100, “blue”)

# Comandi di LibreLogo

## Sintassi di base

### Maiuscole/minuscole

I comandi e le costanti di colore non distinguono tra maiuscole e minuscole:

     PRINT “Hello, World!”
     stampa “Hello, World, di nuovo!”

Le variabili dei nomi distinguono tra le maiuscole e le minuscole:

     a = 5
     A = 7
     PRINT a
     PRINT A

### Linee di programma

Le linee di un programma LibreLogo corrispondono a paragrafi nel documento Writer. Una linea di programma può contenere più comandi:

     PRINT “Ciao Mondo!” PRINT “LibreLogo”

### Commenti

Su una linea, tutto ciò che segue il punto e virgola è un commento:

     ; alcuni commenti
     PRINT 5 * 5 ; alcuni commenti

### Interrompere le righe del programma in più paragrafi

È possibile dividere una linea di programma in più paragrafi tramite l'uso del carattere "~" (tilde) alla fine della riga:

     PRINT “Questo è un messaggio di avviso ” + ~
           “molto lungo”

## Movimento della tartaruga

### FORWARD (fd)

     FORWARD 10 ; sposta avanti di 10pt (1pt = 1/72 di pollice)
     FORWARD 10pt ; vedere sopra
     FORWARD 0.5poll ; sposta avanti di 0.5 pollici (1 pollice = 2.54 cm)
     FORWARD 1" ; vedere sopra
     FD 1mm
     FD 1cm

### BACK (bk)

     BACK 10 ; sposta indietro di 10pt

### LEFT (lt)

     LEFT 90 ; ruota la tartaruga di 90 gradi in senso antiorario
     LEFT 90° ; vedere sopra
     LT 3h ; vedere sopra (posizione orologio)
     LT any ; ruota in una posizione casuale

### RIGHT (rt)

     RIGHT 90 ; gira di 90 gradi in senso orario

### PENUP (pu)

     PENUP ; la tartaruga si sposterà senza disegnare

### PENDOWN (pd)

     PENDOWN ; la tartaruga si sposterà disegnando

### POSITION (pos)

     POSITION [0, 0] ; ruota la tartaruga e la sposta verso l'angolo superiore sinistro
     POSITION PAGESIZE ; ruota e sposta verso l'angolo inferiore destro
     POSITION [PAGESIZE[0], 0] ; ruota e sposta verso l'angolo superiore destro
     POSITION ANY ; ruota e sposta in una posizione casuale

### HEADING (seth)

     HEADING 0 ; gira verso nord
     HEADING 12h ; vedere sopra
     HEADING [0, 0] ; gira verso l'angolo superiore sinistro
     HEADING ANY ; gira in una posizione casuale

## Altri comandi della tartaruga

### HIDETURTLE (ht)

     HIDETURTLE ; nasconde la tartaruga (fino al comando SHOWTURTLE)

### SHOWTURTLE (st)

     SHOWTURTLE ; mostra la tartaruga

### HOME

     HOME ; riporta la posizione della tartaruga alle condizioni iniziali

### CLEARSCREEN (cs)

     CLEARSCREEN ; rimuove gli oggetti di disegno dal documento

### FILL e CLOSE

     FILL ; chiude e riempie la forma della linea o dei punti attivi
     CLOSE ; chiude la forma della linea attiva o unisce i punti attivi

Esempio: riempire un triangolo equilatero:

     FORWARD 50 LEFT 120 FORWARD 50 FILL

Esempio: disegnare un triangolo equilatero:

     FORWARD 50 LEFT 120 FORWARD 50 CLOSE

## Impostazioni della penna

### PENSIZE (ps)

     PENSIZE 100 ; lo spessore linea è di 100 punti
     PENSIZE ANY ; equivale a PENSIZE RANDOM 10

### PENCOLOR/PENCOLOUR (pc)

     PENCOLOR “red” ; imposta il colore della penna a rosso (per nome di colore, vedere le constanti di colore)
     PENCOLOR [255, 255, 0] ; imposta il colore giallo (elenco RGB)
     PENCOLOR 0xffff00 ; imposta il colore giallo (codice esadecimale)
     PENCOLOR 0 ; imposta il colore nero (0x000000)
     PENCOLOR ANY ; colore casuale
     PENCOLOR [5] ; imposta il colore rosso (in base all'identificatore di colore, vedere le costanti di colore)
     PENCOLOR “invisibile” ; colore penna invisibile per le forme senza contorno visibile
     PENCOLOR “~rosso” ; imposta il colore rosso casuale

### PENTRANSPARENCY

     PENTRANSPARENCY 80 ; definisce la trasparenza del colore della penna attiva all'80%

### PENCAP/LINECAP

     PENCAP “none” ; senza estremità linea aggiuntiva (predefinito)
     PENCAP “round” ; estremità linea arrotondata
     PENCAP “square”; estremità linea quadrata

### PENJOINT/LINEJOINT

     PENJOINT "rounded" ; giunzione linea arrotondata (impostazione predefinita)
     PENJOINT “miter” ; giunzione linea appuntita
     PENJOINT “bevel” ; giunzione linea smussata
     PENJOINT “none” ; senza linea di giunzione

### PENSTYLE

     PENSTYLE “solid” ; linea piena (impostazione predefinita)
     PENSTYLE “dotted” ; linea a punti
     PENSTYLE “dashed” ; linea tratteggiata

     ; modello personalizzato di punti–trattini specificato da una lista comprendente i seguenti argomenti:
     ; – numero dei punti contigui
     ; – lunghezza del punto
     ; – numero dei trattini contigui
     ; – lunghezza di un trattino
     ; – distanza dei punti/trattini
     ; – tipo (facoltativo):
     ;   0 = i punti sono rettangoli (impostazione predefinita)
     ;   2 = i punti sono quadrati (le lunghezze e le distanze sono relative alla dimensione della penna)

     PENSTYLE [3, 1mm, 2, 4mm, 2mm, 2] ; ...––...––...––

## Impostazioni di riempimento

### FILLCOLOR/FILLCOLOUR (fc)

     FILLCOLOR “blue” ; riempie col colore blu, vedere anche PENCOLOR
     FILLCOLOR “invisible” CIRCLE 10 ; una circonferenza vuota
     FILLCOLOR [“blue”, “red”] ; gradiente tra il rosso e il blu
     FILLCOLOR [[255, 255, 255], [255, 128, 0]] ; tra il bianco e l'arancione
     FILLCOLOR [“blue”, “red”, 1, 0, 0] ; imposta un gradiente assiale (con la rotazione richiesta e l'impostazione dei bordi), valori possibili: 0-5 = gradienti: lineare, assiale, radiale, ellittico, quadrato e rettangolare
     FILLCOLOR [“red”, “blue”, 0, 90, 20] ; lineare con il bordo del 20%, ruotato di 90 gradi dall'attuale direzione della tartaruga
     FILLCOLOR [“red”, “blue”, 0, 90, 20, 0, 0, 200, 50] ; intensità dal 200% al 50% di intensità
     FILLCOLOR [ANY, ANY, 2, 0, 0, 50, 50] ; gradiente radiale tra due colori casuali e 50-50% orizzontale e verticale posizione del centro

### FILLTRANSPARENCY

     FILLTRANSPARENCY 80 ; imposta la trasparenza dell'attuale colore all'80%
     FILLTRANSPARENCY [80] ; imposta il gradiente lineare di trasparenza da 80% a 0%
     FILLTRANSPARENCY [80, 20] ; imposta il gradiente lineare di trasparenza da 80% a 20%
     FILLTRANSPARENCY [80, 20, 1, 90] ; imposta il gradiente di trasparenza assiale ruotato di 90 gradi rispetto all'attuale direzione della tartaruga
     FILLTRANSPARENCY [80, 20, 2, 0, 20, 50, 50] ; imposta il gradiente di trasparenza radiale dall'80% all'esterno al 20% all'interno con il 20% sui bordi e con 50-50% la posizione orizzontale e verticale del centro

### FILLSTYLE

     FILLSTYLE 0 ; riempie senza tratteggio (impostazione predefinita)
     FILLSTYLE 1 ; tratteggio singolo nero (orizzontale)
     FILLSTYLE 2 ; tratteggio singolo nero (45 gradi)
     FILLSTYLE 3 ; tratteggio singolo nero (-45 gradi)
     FILLSTYLE 4 ; tratteggio singolo nero (verticale)
     FILLSTYLE 5 ; tratteggio incrociato rosso (45 gradi)
     FILLSTYLE 6 ; tratteggio incrociato rosso (0 gradi)
     FILLSTYLE 7 ; tratteggio incrociato blu (45 gradi)
     FILLSTYLE 8 ; tratteggio incrociato blu (0 gradi)
     FILLSTYLE 9 ; triplo tratteggio blu
     FILLSTYLE 10 ; tratteggio singolo largo nero (45 gradi)

     ; tratteggio personalizzato in base a una lista con i seguenti argomenti:
     ; – stile (1 = singolo, 2 = doppio, 3 = triplo tratteggio)
     ; – colore
     ; – distanza
     ; – gradi

     FILLSTYLE [2, “green”, 3pt, 15°] ; tratteggio incrociato verde (15 gradi)

## Disegno di oggetti

### CIRCLE

     CIRCLE 100 ; disegna un cerchio (diametro = 100pt)

### ELLIPSE

     ELLIPSE [50, 100] ; disegna un'ellisse con assi di 50 e 100
     ELLIPSE [50, 100, 2h, 12h] ; disegna un settore ellittico (dalla posizione delle ore 2 a quella delle ore 12)
     ELLIPSE [50, 100, 2h, 12h, 2]  ; disegna un segmento ellittico
     ELLIPSE [50, 100, 2h, 12h, 3]  ; disegna un arco ellittico

### SQUARE

     SQUARE 100 ; disegna un quadrato (dimensione = 100pt)

### RECTANGLE

     RECTANGLE [50, 100] ; disegna un rettangolo (50×100pt)
     RECTANGLE [50, 100, 10] ; disegna un rettangolo con angoli arrotondati

### POINT

     POINT ; disegna un punto di dimensione e colore della penna

CLOSE può unire gli ultimi punti, FILL può riempire la forma definita dai punti. Per esempio, è facile disegnare una stella “semplice” partendo dal suo centro:

     PENUP
     REPEAT 5 [
       FORWARD 80
       POINT
       BACK 80
       RIGHT 36
       FORWARD 50
       POINT
       BACK 50
       RIGHT 120
     ] FILL

### LABEL

     LABEL “testo” ; stampa il testo alla posizione della tartaruga
     LABEL 'testo' ; vedere sopra
     LABEL "testo ; vedere sopra (solo per parole singole)

### TEXT

     CIRCLE 10 TEXT “testo” ; imposta il testo dell'oggetto di disegno corrente

## Impostazioni del tipo di carattere

### FONTCOLOR/FONTCOLOUR

     FONTCOLOR “green” ; imposta il colore del carattere

### FONTFAMILY

     FONTFAMILY “Linux Libertine G” ; imposta il tipo di carattere (famiglia)
     FONTFAMILY “Linux Libertine G:smcp=1” ; imposta anche le caratteristiche del carattere (maiuscoletto)
     FONTFAMILY “Linux Libertine G:smcp=1&onum=1” ; maiuscoletto + vecchio aspetto

### FONTSIZE

     FONTSIZE 12 ; imposta la dimensione dei caratteri a 12 punti

### FONTWEIGHT

     FONTWEIGHT “bold” ; imposta il carattere grassetto
     FONTWEIGHT “normal” ; imposta lo spessore normale

### FONTSTYLE

     FONTSTYLE “italic” ; imposta la variante corsiva
     FONTSTYLE “normal” ; imposta la variante normale

## PICTURE (pic)

PICTURE è per

- il raggruppamento delle forme;

- l'inizio di forme di una nuova linea;

- il salvataggio delle immagini SVG e le animazioni SVG/SMIL;

- mantenendo il riferimento delle posizioni e delle forme delle linee al bordo sinistro.

### Raggruppamento delle forme

     ; PICTURE [ comandi_LibreLogo ]
     PICTURE [ FORWARD 100 CIRCLE 100 ] ; forma raggruppata simile a un albero

Vedere anche “Gruppo” nella Guida di LibreOffice Writer.

     TO albero posizione
       PENUP POSITION posizione HEADING 0 PENDOWN
       PICTURE [ FORWARD 100 CIRCLE 100 ] ; forma raggruppata simile a un albero
     END

     PICTURE [ albero [230, 400] albero [300, 400] ] ; forme raggruppate in una forma raggruppata

### Iniziare forme di una nuova linea

     PICTURE ; inizia la forma di una nuova linea
     FORWARD 10 PICTURE FORWARD 10 ; due forme di linea

### Salvataggio di immagini SVG

     PICTURE “esempio.svg” [ CIRCLE 5 ] ; salva il disegno come un'immagine SVG nella cartella utente
     PICTURE “Desktop/example.svg” [ FORWARD 100 CIRCLE 5 ] ; vedere sopra, con un percorso relativo
     PICTURE “/home/user/example.svg” [ CIRCLE 5 ] ; percorso assoluto per Unix/Linux
     PICTURE “C:\example.svg” [ CIRCLE 5 ] ; percorso assoluto per Windows

### Salvataggio di animazioni SVG/SMIL (disegni con comandi SLEEP)

     PICTURE “animazione.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 ] ; salva come una animazione SVG/SMIL (vedere anche SLEEP)
     PICTURE “animazione2.svg” [ CIRCLE 5 SLEEP 1000 CIRCLE 99 SLEEP 2000 ] ; come sopra, ma usando SLEEP dopo l'ultimo oggetto del ciclo: dopo 2 secondi l'animazione SVG riparte nei browser che supportano SMIL

### Riferimento al bordo sinistro

Usate il comando PICTURE per mantenere il riferimento delle posizioni e delle forme di linea al bordo sinistro di Writer:

     PICTURE [ CIRCLE 20 POSITION [-100, 100] CIRCLE 20 ]

## Cicli

### REPEAT

     ; REPEAT numero [ comandi ]

     REPEAT 10 [ FORWARD 10 LEFT 45 CIRCLE 10 ] ; ripete 10 volte

     ; il numero è facoltativo

     REPEAT [ POSITION ANY ] ; ciclo infinito

### REPCOUNT

Variabile del ciclo (anche nei cicli FOR e WHILE).

     REPEAT 100 [ FORWARD REPCOUNT LEFT 90 ]

### FOR IN

Ciclo per gli elementi delle liste:

     FOR i IN [1, 5, 7, 9, 11] [
       FORWARD i
       LEFT 90
     ]

Ciclo per i caratteri di una stringa:

     FOR i IN “text” [
       LABEL i
       FORWARD 10
     ]

### WHILE

     WHILE TRUE [ POSITION ANY ] ; ciclo infinito
     WHILE REPCOUNT <= 10 [ FORWARD 50 LEFT 36 ] ; come REPEAT 10 [ ... ]

### BREAK

Ferma il ciclo.

     REPEAT [ ; ciclo infinito
       POSITION ANY
       IF REPCOUNTARIP = 100 [ BREAK ]  ; equivalente a REPEAT 100 [ ... ]
     ]

### CONTINUE

Passa all'iterazione successiva del ciclo.

     REPEAT 100 [
       POSITION ANY
       IF REPCOUNT % 2 = 0 [ CONTINUE ]
       CIRCLE 10 ; disegna cerchi una posizione sì e una no
     ]

## Condizioni

### IF

     ; IF condizione [ blocco vero ]
     ; IF condizione [ blocco vero ] [ blocco falso ]

     IF a < 10 [ PRINT “Piccolo” ]
     IF a < 10 [ PRINT “Piccolo” ] [ PRINT “Grande” ]

### AND, OR, NOT

Operatori logici.

     IF a < 10 AND NOT a = 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 o 9” ]
     IF a < 10 AND a != 5 [ PRINT “0, 1, 2, 3, 4, 6, 7, 8 o 9” ] ; vedere sopra

## Funzioni

### TO, END

Nuova parola (o funzione).

     TO triangolo
       REPEAT 2 [ FORWARD 100 RIGHT 120 ] FILL
     END

     REPEAT 10 [ triangolo PENUP POSITION ANY PENDOWN ]

### OUTPUT

Restituisce il valore della funzione.

     TO letteracasuale
       OUTPUT RANDOM “qwertzuiopasdfghjklyxcvbnm”
     END

     PRINT letteracasuale + letteracasuale + letteracasuale ; stampa una stringa formata da tre caratteri casuali

### STOP

Termina la procedura.

     TO esempio numero
       IF numero < 0 [ STOP ]
       PRINT SQRT numero ; stampa radice quadrata
     ]

     esempio 100
     esempio -1 ; senza risultato ed errore
     esempio 25

## Variabili predefinite

### ANY

Valori casuali predefiniti di colori, ecc.

     PENCOLOR ANY ; colore casuale della penna

### TRUE

Valore logico.

     WHILE TRUE [ POSITION ANY ] ; ciclo infinito
     PRINT TRUE ; stampa vero

### FALSE

Valore logico.

     WHILE NOT FALSE [ POSITION ANY ] ; ciclo infinito
     PRINT FALSE ; stampa falso

### PAGESIZE

     PRINT PAGESIZE ; stampa una lista contenente le dimensioni di pagina in punti, per es. [595.30, 841.89]

### PI/π

     PRINT PI ; stampa 3.14159265359

## Input/Output

### PRINT

     PRINT “testo” ; stampa “testo” in una finestra di dialogo
     PRINT 5 + 10 ; stampa 15

### INPUT

     PRINT INPUT “Input valore?” ; chiede e stampa una stringa da una finestra di dialogo
     PRINT FLOAT (INPUT “Primo numero?”) + FLOAT (INPUT “Secondo numero?”) ; calcolatrice semplice

## SLEEP

     SLEEP 1000 ; attende per 1000 ms (1 sec)

## GLOBAL

Imposta come globali le variabili usate nelle procedure.

     GLOBAL informazioni
     informazioni = “LibreLogo”

     TO esempio
       PRINT  informazioni
       GLOBAL informazioni ; quando vogliamo modificare il valore
       informazioni = “nuovo valore per la variabile globale”
     END

     esempio
     PRINT  informazioni

## Funzioni

### RANDOM

     PRINT RANDOM 100 ; numero in virgola mobile casuale (0 <= x < 100)
     PRINT RANDOM “testo” ; lettera casuale del “testo”
     PRINT RANDOM [1, 2] ; elemento casuale della lista (1 o 2)

### INT

     PRINT INT 3.8 ; stampa 3 (parte intera di 3.8)
     PRINT INT RANDOM 100 ; numero intero casuale (0 <= x < 100)
     PRINT INT “7” ; converte la stringa in numero intero

### FLOAT

     ; converte la stringa in un numero con la virgola
     PRINT 2 * FLOAT “5.5” ; stampa 11.0

### STR

     ; converte in stringa il numero
     PRINT “Risultato: ” + STR 5 ; stampa “Risultato: 5”
     PRINT 10 * STR 5 ; stampa 5555555555

### SQRT

     PRINT SQRT 100 ; stampa 10, la radice quadrata di 100

### SIN

     PRINT SIN 90 * PI/180 ; stampa 1.0 (seno di 90° in radianti)

### COS

     PRINT COS 0 * PI/180 ; stampa 1.0 (coseno di 0° in radianti)

### LOG10

     PRINT LOG10 100 ; stampa 2.0 (che è il logaritmo in base 10 di 100)

### ROUND

     PRINT ROUND 3.8 ; stampa 4 (arrotondamento di 3.8)
     PRINT ROUND RANDOM 100 ; numero intero casuale (0 <= x <= 100)

### ABS

     PRINT ABS -10 ; stampa 10, valore assoluto di -10

### COUNT

     PRINT COUNT “testo” ; stampa 5, il numero di caratteri di “testo”
     PRINT COUNT [1, 2, 3] ; stampa 3, dimensione della lista

### SET

     ; Converte la lista in un insieme Python
     PRINT SET [4, 5, 6, 6] ; stampa {4, 5, 6}
     PRINT SET [4, 5, 6, 6] | SET [4, 1, 9] ; stampa {1, 4, 5, 6, 9}, unione
     PRINT SET [4, 5, 6, 6] & SET [4, 1, 9] ; stampa {4}, intersezione
     PRINT SET ([4, 5, 6, 6]) - SET [4, 1, 9] ; stampa {5, 6}, differenza
     PRINT SET [4, 5, 6, 6] ^ SET [4, 1, 9] ; stampa {1, 5, 6, 9}, differenza simmetrica

### RANGE

     ; generazione di una lista di numeri naturali in stile Python
     PRINT LIST RANGE 10 ; print [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 ; print [3, 4, 5, 6, 7, 8, 9]
     PRINT LIST RANGE 3 10 3 ; print [3, 6, 9]

     FOR i IN RANGE 10 50 10 [ ; loop for [10, 20, 30, 40]
       FORWARD i
       LEFT 90
     ]

### LIST

     ; rimuove gli elementi ripetuti da una lista, tramite la conversione da lista a insieme e da insieme a lista
     PRINT LIST (SET [1, 3, 5, 5, 2, 1]) ; stampa [1, 3, 5, 2]

### TUPLE

Conversione in ennupla Python (lista non modificabile)

     PRINT TUPLE [4, 5]

### SORTED

Restituisce un elenco ordinato.

     PRINT SORTED [5, 1, 3, 4] ; stampa [1, 3, 4, 5]

### SUB

Sostituisce le sequenze di caratteri utilizzando le espressioni regolari.

     PRINT SUB (“t”, “T”, “testo”) ; stampa “TesTo”, rimpiazzando “t” con “T”
     PRINT SUB (“(.)”, “\\1\\1”, “testo”) ; stampa “tteessttoo”, raddoppiando tutti i caratteri

### SEARCH

Cerca le sequenze di caratteri tramite l'uso di espressioni regolari.

     IF SEARCH (“\p”, "parola") [ PRINT “Lettera nella parola.” ]

### FINDALL

Trova tutte le sequenze di caratteri nella stringa immessa che corrispondono all'espressione regolare data.

     PRINT FINDALL(“\w+”, “Cani, gatti.”) ; stampa [“Cani”, “gatti”], l'elenco delle parole.

### MIN

     PRINT MIN [1, 2, 3] ; stampa 1, l'elemento minore della lista

### MAX

     PRINT MAX [1, 2, 3] ; stampa 3, l'elemento maggiore della lista

## Costanti di colore

     PENCOLOR “SILVER” ; imposta per nome
     PENCOLOR [1] ; imposta per identificatori
     PENCOLOR “~SILVER” ; colore argento casuale

Identificatore | Nome
--- | ---
0 | BLACK
1 | SILVER
2 | GRAY/GREY
3 | WHITE
4 | MAROON
5 | RED
6 | PURPLE
7 | FUCHSIA/MAGENTA
8 | GREEN
9 | LIME
10 | OLIVE
11 | YELLOW
12 | NAVY
13 | BLUE
14 | TEAL
15 | AQUA
16 | PINK
17 | TOMATO
18 | ORANGE
19 | GOLD
20 | VIOLET
21 | SKYBLUE
22 | CHOCOLATE
23 | BROWN
24 | INVISIBLE

Sostienici!