<title>Guida di &kturtle; alla programmazione &logo;</title>
<para>Questa è la guida del &logo; di &kturtle;. In questo capitolo accenniamo brevemente a tutti i <link linkend="different-instructions">diversi tipi di istruzioni</link>. Quindi vengono spiegati uno ad uno i <link linkend="commands">comandi</link>. Poi vengono spiegati i <link linkend="containers">contenitori</link>, la <link linkend="math">matematica</link>, le <link linkend="questions">domande</link> e le <link linkend="controlling-execution">istruzioni di controllo dell'esecuzione</link>. Infine ti viene mostrato come creare i tuoi comandi con <link linkend="learn">impara</link>.</para>
<para>Come in qualsiasi altro linguaggio, il LOGO ha differenti tipi di parole e di simboli. Qui vengono brevemente spiegate le differenze tra i tipi.</para>
<para>Usando i comandi tu dici alla tartaruga o a &kturtle; di fare qualcosa. Alcuni comandi richiedono argomenti, alcuni restituiscono risultati. <screen># avanti è un comando che richiede un argomento, in questo caso il numero 100:
<para>Molto probabilmente conosci già i numeri. Il modo in cui i numeri sono usati in &kturtle; non è molto differente dalla lingua parlata o dalla matematica. </para>
<para>Abbiamo i cosiddetti numeri naturali: <userinput>0</userinput>, <userinput>1</userinput>, <userinput>2</userinput>, <userinput>3</userinput>, <userinput>4</userinput>, <userinput>5</userinput>, ecc. I numeri negativi: <userinput>-1</userinput>, <userinput>-2</userinput>, <userinput>-3</userinput>, ecc. E i numeri decimali, o numeri con la virgola, per esempio: <userinput>0.1</userinput>, <userinput>3.14</userinput>, <userinput>33.3333</userinput>, <userinput>-5.05</userinput>, <userinput>-1.0</userinput>. </para>
<para>I numeri possono essere usati in <link linkend="math">calcoli matematici</link> e in <link linkend="questions">domande</link>. Possono anche essere inseriti in <link linkend="containers">contenitori</link>.</para>
<para>I numeri sono <glossterm>evidenziati</glossterm> con il blu nell'<link linkend="the-code-editor">editor del codice</link>.</para>
</screen> In questo esempio <userinput>scrivi</userinput> è un comando dove <userinput>"Ciao, sono una stringa."</userinput> è una stringa. Le stringhe iniziano e finiscono con il carattere <userinput>"</userinput>, e grazie a questi caratteri &kturtle; sa che è una stringa.</para>
<para>Le stringhe possono essere inserite in <link linkend="containers">contenitori</link>. Tuttavia non possono essere usate in <link linkend="math">calcoli matematici</link> e <link linkend="questions">domande</link>.</para>
<para>Le stringhe sono <glossterm>evidenziate</glossterm> con il rosso scuro nell'<link linkend="the-code-editor">editor del codice</link>.</para>
<para>Quando usi il linguaggio di programmazione &logo; crei nuove cose. Se scrivi un programma spesso avrai bisogno di <link linkend="containers">contenitori</link> e, in alcuni casi, di <link linkend="learn">impara</link> per creare nuovi comandi. Quando crei un <link linkend="containers">contenitore</link> o un nuovo comando con <link linkend="learn">impara</link> dovrai specificare un nome.</para>
<para>Puoi scegliere qualsiasi nome, a meno che non abbia già un significato. Per esempio non puoi chiamare <link linkend="forward">avanti</link> un contenitore, dato che quel nome è già usato per un comando, e per questo ha un significato. <screen>
</screen> I nomi possono contenere solo lettere, numeri e trattini bassi (_). Devono tuttavia iniziare con una lettera. </para>
<para>Per una spiegazione più esauriente e per vedere più esempi leggi la documentazione sui <link linkend="containers">contenitori</link> e sul comando <link linkend="learn">impara</link>. </para>
<para>Un assegnamento viene effettuato con il simbolo <userinput>=</userinput>. Nei linguaggi di programmazione è meglio leggere il singolo <userinput>=</userinput> non come "uguale" ma come "diventa". La parola "uguale" è più appropriata per <userinput>==</userinput> che è una <link linkend="questions">domanda</link>.</para>
<para>Gli assegnamenti sono usati generalmente per due motivi, (1) per aggiungere <link linkend="containers">contenitori</link> e (2) per modificare il contenuto di un contenitore. Per esempio: <screen>x = 10
<para>&kturtle; supporta tutti i simboli matematici base: addizione (<userinput>+</userinput>), sottrazione (<userinput>-</userinput>), moltiplicazione (<userinput>*</userinput>), divisione (<userinput>/</userinput>) e le parentesi <userinput>(</userinput> e <userinput>)</userinput>.</para>
<para>Per una spiegazione più esauriente e per vedere più esempi leggi la sezione sulla <link linkend="math">matematica</link>.</para>
<para>Le domande posso essere unite assieme con i cosiddetti "collanti delle domande". Le parole "collanti" sono <userinput>e</userinput> <userinput>o</userinput>, e un "collante" speciale: <userinput>non</userinput>.</para>
<para>L'uso dei "collanti" delle domande è spiegato nella sezione <link linkend="question-glue">I "collanti" delle domande</link>.</para>
</screen> Noi possiamo aggiungere commenti al codice, affinché lo leggiamo noi stessi o lo leggano altri. I commenti sono usati per: (1) aggiungere una piccola descrizione al programma, (2) spiegare come funziona un pezzo di codice nel caso sia un po' complesso, e (3) per "commentare via" linee di codice che dovrebbero essere (temporaneamente) ignorate (guarda l'ultima linea dell'esempio).</para>
<para>Le linee commentate sono <glossterm>evidenziate</glossterm> con il giallo scuro nell'<link linkend="the-code-editor">editor del codice</link>.</para>
<para>Usando i comandi tu dici alla tartaruga o a &kturtle; di fare qualcosa. Alcuni comandi richiedono argomenti, alcuni restituiscono risultati. In questa sezione spieghiamo tutti i comandi che possono essere usati in &kturtle;. Nota che tutti i comandi predefiniti di cui discutiamo qui sono <glossterm>evidenziati</glossterm> con il verde scuro nell'<link linkend="the-code-editor">editor del codice</link>, ciò può aiutarti a distinguerli.</para>
<userinput>avanti</userinput> muove la tartaruga avanti di X pixel. Quando la penna è giù la tartaruga lascerà un tratto. <userinput>avanti</userinput> può essere abbreviato in <userinput>av</userinput></para></listitem>
<userinput>indietro</userinput> muove la tartaruga indietro di X pixel. Quando la penna è giù la tartaruga lascerà un tratto. <userinput>indietro</userinput> può essere abbreviato in <userinput>in</userinput>.</para></listitem>
<userinput>sinistra</userinput> comanda alla tartaruga di girare X gradi a sinistra. <userinput>sinistra</userinput> può essere abbreviato in <userinput>sx</userinput>.</para></listitem>
<userinput>destra</userinput> comanda alla tartaruga di girare X gradi a destra. <userinput>destra</userinput> può essere abbreviato in <userinput>dx</userinput>.</para></listitem>
<userinput>direzione</userinput> imposta la direzione della tartaruga a X gradi partendo da zero, e così non è relativo alla precedente direzione della tartaruga. <userinput>direzione</userinput> può essere abbreviato in <userinput>dir</userinput>.</para></listitem>
<userinput>vai</userinput> comanda alla tartaruga di andare in un certo punto dell'area di disegno. Questo punto dista X <glossterm linkend="pixels">pixel</glossterm> da sinistra e Y <glossterm linkend="pixels">pixel</glossterm> dall'alto dell'area di disegno. Nota che usando il comando <userinput>vai</userinput> la tartaruga non disegnerà una linea.</para></listitem>
<userinput>vaix</userinput> usando questo comando la tartaruga si muoverà a X <glossterm linkend="pixels">pixel</glossterm> dalla sinistra dell'area di disegno mantenendo la sua altezza.</para></listitem>
<userinput>vaiy</userinput> usando questo comando la tartaruga si muoverà a Y <glossterm linkend="pixels">pixel</glossterm> dall'alto dell'area di disegno mantenendosi alla stessa distanza dal bordo sinistro dell'area di disegno.</para></listitem>
<para>La tartaruga ha una penna che disegna una linea quando la tartaruga si muove. Ci sono alcuni comandi che controllano la penna. In questa sezione vengono spiegati questi comandi.</para>
<userinput>pennasu</userinput> alza la penna dall'area di disegno. Quando la penna è <quote>su</quote> non sarà disegnata alcuna linea quando la tartaruga si muove. Vedi anche <userinput>pennagiu</userinput>. <userinput>pennasu</userinput> può essere abbreviato in <userinput>ps</userinput>.</para></listitem>
<userinput>pennagiu</userinput> abbassa la penna sull'area di disegno. Quando la penna è <quote>giù</quote> sull'area di disegno sarà disegnata una linea quando la tartaruga si muove. Vedi anche <userinput>pennasu</userinput>. <userinput>pennagiu</userinput> può essere abbreviato in <userinput>pg</userinput>.</para></listitem>
<userinput>spessorepenna</userinput> imposta lo spessore della penna (lo spessore della linea) a X <glossterm linkend="pixels">pixel</glossterm>. <userinput>spessorepenna</userinput> può essere abbreviato in <userinput>sp</userinput>.</para></listitem>
<userinput>colorepenna</userinput> imposta il colore della penna. <userinput>colorepenna</userinput> richiede una <glossterm linkend="rgb">combinazione RGB</glossterm> come argomento. <userinput>colorepenna</userinput> può essere abbreviato in <userinput>cp</userinput>.</para></listitem>
Con il comando <userinput>dimensionesfondo</userinput> puoi impostare la dimensione dell'area di disegno. Richiede X e Y come argomenti, dove X è la nuova larghezza dell'area di disegno in <glossterm linkend="pixels">pixel</glossterm>, e Y è la nuova altezza dell'area di disegno in <glossterm linkend="pixels">pixel</glossterm>. <userinput>dimensionesfondo</userinput> può essere abbreviato in <userinput>ds</userinput>.</para></listitem>
<userinput>coloresfondo</userinput> imposta il colore dell'area di disegno. <userinput>coloresfondo</userinput> richiede una <glossterm linkend="rgb">combinazione RGB</glossterm> come argomento. <userinput>coloresfondo</userinput> può essere abbreviato in <userinput>cs</userinput>.</para></listitem>
Con il comando <userinput>attorno</userinput> puoi attivare l'<glossterm linkend="wrapping">avvolgimento</glossterm> per l'area di disegno. Consulta il glossario se vuoi sapere cosa è <glossterm linkend="wrapping">l'<quote>avvolgimento</quote></glossterm>.</para></listitem>
Con il comando <userinput>muro</userinput> puoi disattivare l'<glossterm linkend="wrapping">avvolgimento</glossterm> per l'area di disegno: ciò significa che la tartaruga può muoversi al di fuori dell'area di disegno e <quote>perdersi</quote>. Consulta il glossario se vuoi sapere cosa è <glossterm linkend="wrapping">l'<quote>avvolgimento</quote></glossterm>.</para></listitem>
Con <userinput>pulisci</userinput> puoi pulire tutti i disegni dall'area di disegno. Tutte le altre cose rimangono: la posizione e l'angolo della tartaruga, il colore dell'area di disegno, la visibilità della tartaruga e la dimensione dell'area di disegno. <userinput>pulisci</userinput> può essere abbreviato in <userinput>cls</userinput>.</para></listitem>
<userinput>ricomincia</userinput> pulisce molto più accuratamente del comando <userinput>pulisci</userinput>. Dopo un comando <userinput>ricomincia</userinput> tutto ritorna come era quando hai avviato &kturtle;. La tartaruga è posizionata al centro dello schermo, il colore dell'area di disegno è bianco e la tartaruga disegna linee nere sull'area di disegno.</para></listitem>
<para>Prima una breve spiegazione di cosa sono i folletti: i folletti sono piccoli disegni che possono essere mossi in giro per lo schermo, come spesso vediamo nei giochi per il computer. Anche la nostra tartaruga è un folletto. Per maggiori informazioni vedi la voce di glossario sui <glossterm linkend="sprites">folletti</glossterm>. </para>
<para>Di seguito troverai una descrizione completa di tutti i comandi che lavorano con i folletti.</para>
<para>[L'attuale versione di &kturtle; non supporta ancora l'uso di folletti diversi dalla tartaruga. Con le future versioni potrai cambiare la tartaruga in qualcos'altro creato da te]</para>
<userinput>mostra</userinput> rende nuovamente visibile la tartaruga dopo che è stata nascosta. <userinput>mostra</userinput> può essere abbreviato in <userinput>ms</userinput>.</para></listitem>
<userinput>nascondi</userinput> nasconde la tartaruga. Ciò può essere usato se non conviene che la tartaruga appaia nel tuo disegno. <userinput>nascondi</userinput> può essere abbreviato in <userinput>ns</userinput>.</para></listitem>
Il comando <userinput>scrivi</userinput> è usato per comandare alla tartaruga di scrivere qualcosa sull'area di disegno. <userinput>scrivi</userinput> accetta numeri e stringhe come parametri. Puoi scrivere vari numeri e stringhe usando il simbolo <quote>+</quote>. Guarda qui un piccolo esempio: <screen>anno = 2003
<userinput>dimensionecarattere</userinput> imposta la dimensione del tipo di carattere usato dal comando <userinput>scrivi</userinput>. <userinput>dimensionecarattere</userinput> richiede un argomento che dovrebbe essere un numero. La dimensione è impostata in <glossterm linkend="pixels">pixel</glossterm>.</para></listitem>
<userinput>casuale</userinput> è un comando che richiede parametri e restituisce un valore. Come parametri richiede due numeri, il primo(X) imposta il valore minimo restituito, il secondo (Y) imposta il massimo. Il valore restituito è un numero scelto casualmente maggiore o uguale del minimo e minore o uguale del massimo. Qui vi è un piccolo esempio: <screen>
<title>Inserire dati e visualizzare messaggi con finestre di dialogo</title>
<para>Una finestra di dialogo è una piccola finestra a comparsa che mostra un messaggio o chiede di inserire qualcosa. &kturtle; ha due comandi per le finestre di dialogo, chiamati: <userinput>messaggio</userinput> e <userinput>finestrainserimento</userinput></para>
Il comando <userinput>messaggio</userinput> richiede una <link linkend="string">stringa</link> come argomento. Mostra una finestra a comparsa che contiene il testo della <link linkend="string">stringa</link>. <screen>anno = 2003
<userinput>finestrainserimento</userinput> richiede una <link linkend="string">stringa</link> come argomento. Mostra una finestra a comparsa che contiene il testo della stringa, allo stesso modo di <link linkend="message">messaggio</link>. Ma in più vi è un campo di inserimento nella finestra di dialogo. Attraverso questo campo di inserimento l'utente può inserire un <link linkend="number">numero</link> o una <link linkend="string">stringa</link> che può essere memorizzata in un <link linkend="containers">contenitore</link>. Per esempio <screen>
</screen> Quando un utente annulla la finestra di dialogo, o non inserisce niente, il <link linkend="containers">contenitore</link> è svuotato.</para></listitem>
<para>I contenitori sono lettere o parole che possono essere usate dal programmatore per memorizzare un numero o del testo. I contenitori che contengono un numero sono chiamati <link linkend="variables">variabili</link>, quelli che possono contenere del testo sono chiamati <link linkend="strings">stringhe</link>.</para>
</screen> Questo non scriverà niente. Se proviamo ad eseguire dei <link linkend="math">calcoli matematici</link> con contenitori vuoti otterremo degli errori. </para>
</screen> Nella prima linea la lettera <userinput>x</userinput> è trasformata in una variabile (contenitore numerico). Come vedi il valore della variabile <userinput>x</userinput> è impostato a 3. Nella seconda linea viene stampato a video il valore.</para>
<para>Nota che se volevamo scrivere una <quote>x</quote> avremmo dovuto scrivere <screen>scrivi "x"
</screen> nelle prime due righe le variabili <userinput>A</userinput> e <userinput>B</userinput> sono impostare a 2004 e 25. Nella terza riga la variabile <userinput>C</userinput> è impostata ad <userinput>A + B</userinput>, che è 2029. Il resto dell'esempio è costituito da 3 comandi <userinput>scrivi</userinput> con <userinput>indietro 30</userinput> in mezzo. Il comando <userinput>indietro 30</userinput> ci assicura che ogni testo è scritto in una nuova riga. In questo esempio puoi anche vedere che le variabili possono essere usate nei <link linkend="math">calcoli matematici</link>.</para>
</screen> Il testo regolare è delimitato dalle virgolette doppie. Chiamiamo questi pezzi di testo regolare <link linkend="strings">stringhe</link>.</para>
<para>Le stringhe possono essere memorizzate in <link linkend="containers">contenitori</link> allo stesso modo dei <link linkend="number">numeri</link>. Le stringhe sono molto simili alle variabili. La più grande differenza è che le stringhe contengono testo invece che numeri. Per questo motivo le stringhe non possono essere usate in <link linkend="math">calcoli matematici</link> e <link linkend="questions">domande</link>. Un esempio di uso di stringhe: <screen>
</screen> Nella prima riga la stringa <userinput>x</userinput> è impostata a <quote>Ciao </quote>. Nella seconda riga la stringa <userinput>nome</userinput> è impostata al risultato del comando <userinput>finestrainserimento</userinput>. Nella terza riga il programma scrive nell'area di disegno una stringa composta da tre stringhe.</para>
<para>Questo programma ti chiede di inserire il tuo nome. Quando inserisci, per esempio, il nome <quote>Paolo</quote>, il programma scrive <quote>Ciao Paolo, come va?</quote>. Nota che il segno più (+) è l'unico segno matematico che puoi usare con le stringhe.</para>
<para>Sì, &kturtle; farà la matematica per te. Puoi aggiungere (+), sottrarre (-), moltiplicare (*) e dividere (/). Ecco qui un esempio nel quale usiamo tutte le operazioni: <screen>
</screen> Lo sai che valori hanno a, b, c e d? Nota l'uso del simbolo di <link linkend="assignment">assegnamento</link> <userinput>=</userinput>.</para>
<para>Se vuoi eseguire un semplice calcolo puoi scrivere qualcosa di simile a questo: <screen>scrivi 2004-12
</screen> Ciò che si trova dentro le parentesi sarà calcolato prima. In questo esempio, sarà calcolato 20-5, quindi moltiplicato per 2, diviso per 30, e viene infine aggiunto 1 (avendo 2 come risultato).</para>
<title>Chiedere domande, avere risposte...</title>
<para><link linkend="if"><userinput>se</userinput></link> e <link linkend="while"><userinput>mentre</userinput></link> sono <link linkend="controlling-execution">comandi di controllo dell'esecuzione</link> di cui parleremo nella prossima sezione. In questa sezione usiamo il comando <link linkend="if"><userinput>se</userinput></link> per spiegare le domande.</para>
</screen> In questo esempio la domanda è costituita da <userinput>x > 5</userinput>. Se la risposta a questa domanda è "vero", sarà eseguito il codice tra le parentesi quadre. Le domande sono una parte molto importante della programmazione e sono spesso usate insieme ai <link linkend="controlling-execution">comandi di controllo dell'esecuzione</link>, come <link linkend="if"><userinput>se</userinput></link>. Tutti i numeri e le <link linkend="variables">variabili</link> (contenitori numerici) possono essere confrontati l'un l'altro con le domande.</para>
<para>Qui vi sono tutte le possibili domande: <table>
</screen> In questo esempio è usato il "collante" <userinput>e</userinput> per unire insieme due domande (<userinput>a < 5</userinput>, <userinput>b == 5</userinput>). Se un lato di <userinput>e</userinput> avrà come risposta <quote>falso</quote>, l'intera domanda avrà come risposta <quote>falso</quote>, poiché con il "collante" <userinput>e</userinput> entrambi i lati devono essere <quote>vero</quote> per poter rispondere <quote>vero</quote>. Non ti dimenticare di usare le parentesi attorno ad ogni domanda!</para>
<para>I "collanti" delle domande sono <glossterm>evidenziati</glossterm> con il viola nell'<link linkend="the-code-editor">editor del codice</link>.</para>
<para>Quando due domande sono incollate l'un l'altra con <userinput>e</userinput>, entrambi i lati di <userinput>e</userinput> devono essere "vero" per poter dare come risultato "vero". Un esempio: <screen>
<para><userinput>non</userinput> è uno speciale "collante" delle domande poiché funziona solo con una domanda alla volta. <userinput>non</userinput> cambia "vero" in "falso" e "falso" in "vero". Un esempio: <screen>
</screen> In questo esempio la domanda "incollata" è "vera", tuttavia <userinput>non</userinput> la cambia in "falsa". Così alla fine viene scritto <userinput>"non ciao ;-)"</userinput> sull'<link linkend="the-canvas">area di disegno</link>.</para>
<para>I comandi di controllo dell'esecuzione ti permettono — come dicono il loro nomi — di controllare l'esecuzione.</para>
<para>I comandi di controllo dell'esecuzione sono <glossterm>evidenziati</glossterm> di verde scuro con un tipo di carattere grassetto. Le parentesi quadre usate principalmente con i comandi di controllo dell'esecuzione e sono <glossterm>evidenziate</glossterm> di verde chiaro.</para>
<para>Se hai programmato in &kturtle; devi aver notato che la tartaruga può essere molto veloce a disegnare. Questo comando fa sì che la tartaruga attenda per un tempo specificato.</para>
</screen> Questo codice disegna un cerchio, ma la tartaruga attenderà mezzo secondo dopo ogni passo. Ciò da' l'impressione di una tartaruga che si muove lentamente.</para></listitem>
Il codice che si trova tra le parentesi quadre sarà eseguito solo <userinput>se</userinput> la risposta alla <link linkend="questions">domanda</link> è <quote>vero</quote>. Per maggiori informazioni leggi sulle <link linkend="questions">domande</link> nella <link linkend="questions">sezione sulle domande</link>. <screen>
</screen> Nella prima linea <userinput>x</userinput> è impostato a 6. Nella seconda linea è chiesta la <link linkend="questions">domanda</link> <userinput>x > 5</userinput>. Dato che la risposta a questa domanda è <quote>vero</quote> il comando di controllo dell'esecuzione <userinput>se</userinput> permetterà che venga eseguito il codice tra le parentesi quadre</para></listitem>
Il comando di controllo dell'esecuzione <userinput>mentre</userinput> è molto simile a <link linkend="if"><userinput>se</userinput></link>. La differenza è che <userinput>mentre</userinput> continua a ripetere (in modo ciclico) il codice tra le parentesi quadre fino a quando la risposta alla <link linkend="questions">domanda</link> è <quote>falso</quote>. <screen>
</screen> Nella prima linea <userinput>x</userinput> è impostato a 1. Nella seconda linea viene chiesta la <link linkend="questions">domanda</link> <userinput>x < 5</userinput>. Dato che la risposta a questa domanda è <quote>vero</quote> il comando di controllo dell'esecuzione <userinput>mentre</userinput> inizia ad eseguire il codice tra le parentesi quadre fino a quando la risposta alla <link linkend="questions">domanda</link> è <quote>falso</quote>. In questo caso il codice tra le parentesi quadre sarà eseguito 4 volte, dato che ogni volta che viene eseguita la quinta linea <userinput>x</userinput> è incrementato di 1.</para></listitem>
<userinput>altrimenti</userinput> può essere usato in aggiunta al comando di controllo dell'esecuzione <link linkend="if"><userinput>se</userinput></link>. Il codice tra le parentesi quadre dopo <userinput>altrimenti</userinput> è eseguito solo se la risposta alla <link linkend="questions">domanda</link> chiesta è <quote>falso</quote>. <screen>
</screen> La <link linkend="questions">domanda</link> chiede se <userinput>x</userinput> è più grande di 5. Dato che <userinput>x</userinput> è stato impostato a 4 nella prima linea, la risposta alla domanda è <quote>falso</quote>. Ciò significa che viene eseguito il codice tra le parentesi dopo <userinput>altrimenti</userinput>.</para></listitem>
</screen> Ogni volta che viene eseguito il codice tra le parentesi quadre, <userinput>x</userinput> viene incrementato di 1, fino a quando <userinput>x</userinput> raggiunge il valore di 10. Il codice tra le parentesi quadre scrive il valore di <userinput>x</userinput> moltiplicato per 7. Alla fine dell'esecuzione di questo programma vedrai scritta sull'area di disegno la tabellina del 7.</para></listitem>
<title>Crea i tuoi comandi con <quote>impara</quote></title>
<para><userinput>impara</userinput> è un comando molto particolare, dato che è usato per creare comandi personalizzati. Il comando che crei può richiedere <glossterm linkend="input-output">parametri</glossterm> e restituire <glossterm linkend="input-output">valori</glossterm>. Diamo un'occhiata a come creare un nuovo comando: <screen>
</screen> Il nuovo comando è chiamato <userinput>cerchio</userinput>. <userinput>cerchio</userinput> richiede un <glossterm linkend="input-output">parametro</glossterm>, un numero, per impostare la dimensione del cerchio. <userinput>cerchio</userinput> non restituisce <glossterm linkend="input-output">valori</glossterm>. Il comando <userinput>cerchio</userinput> può essere ora usato nel resto del codice come un normale comando. Guarda questo esempio: <screen>impara cerchio X [
</screen> In questo esempio viene creato un nuovo comando chiamato <userinput>moltiplicatoPerSeStesso</userinput>. Il parametro di questo comando è moltiplicato per se stesso e quindi restituito, usando il comando <anchor id="return"/><userinput>restituisci</userinput>. Il comando <userinput>restituisci</userinput> è il modo per restituire un valore da una funzione che hai creato. </para>