## 3. Programa d'aprenentatge de l'Script-Fu

En aquest curs, començarem amb una introducció als fonaments de «Scheme» necessaris per a utilitzar l'Script-Fu. Llavors construirem un script pràctic que pugueu afegir a la caixa d'eines dels scripts. L'script requereix un text per a l'usuari, i es crea una imatge nova que s'adapta a la mida del text. Aleshores, es millora l'script afegint un marc al voltant del text. Es conclou amb maneres d'augmentar el vostre coneixement de l'Script-Fu.

| Nota
Aquesta secció és una adaptació d'un programa d'aprenentatge escrit per Mike Terry per al GIMP 1 Manual d'usuari.

### 3.1. Coneixent l'Scheme

#### 3.1.1. Inicia amb l'Scheme

L'esquema https://en.wikipedia.org/wiki/Scheme_(programming_language) és un dialecte de la família Lisp de llenguatges de programació. El GIMP utilitza TinyScheme, que és un intèrpret lleuger d'un subconjunt de l'anomenat estàndard R5RS.

El primer que aprendrem és:

> Totes les declaracions en Scheme van entre parèntesis ().

La segona cosa que heu de saber és:

> El nom d'una funció/operador és sempre el primer element en el parèntesi, i la resta són paràmetres de la funció.

Tanmateix, no tot el que està tancat entre parèntesis és una funció també poden ser articles d'una llista es veurà més tard. Aquesta notació es refereix a la notació de prefix, ja que la funció hi és abans que tota la resta. Si esteu familiaritzats amb la notació de prefix, o teniu una calculadora que utilitza notació polonesa inversa (com moltes calculadores HP), no hauríeu de tenir problemes per a adaptar-vos a la formulació d'expressions en «Scheme».

La tercera cosa a entendre és:

> Els operadors matemàtics també es consideren funcions, i per tant apareixen en primer lloc quan s'escriuen les fórmules matemàtiques.

Això és conseqüència lògica de la notació de prefix.

#### 3.1.2. Exemples de notacions de prefix, infix i sufix

Alguns exemples ràpids que il·lustren les diferències entre notacions de prefix, infix, i sufix. Vam sumar 1 i 23 a la vegada:

- Notació de prefix: `+ 1 23` (Així és com ho vol l'Scheme)

- Notació de sufix: `1 + 23` (és la manera «natural» d'escriure)

- Notació de sufix: `1 23 +` (utilitzada per a moltes calculadores HP)

#### 3.1.3. Pràctiques de Scheme

En el GIMP seleccioneu Filtres → Desenvolupament → Script-Fu → Consola Script-Fu des del menú principal. Això iniciarà la finestra de la consola Script-Fu, que permet treballar interactivament a Scheme.

#### 3.1.4. La finestra de la Consola de Script-Fu

En la part inferior d'aquesta finestra hi ha un camp d'entrada amb el títol Ordre actual. Ací podeu provar interactivament les ordres Scheme. Comenceu amb alguna cosa fàcil i hi afegiu alguns nombres:

    (+ 3 5)

Teclejant aquesta seqüència i prémer Retorn, s'obté el resultat esperat: 8, al centre de la finestra.

Figura 13.1. Ús de la consola Script-Fu.

La funció «+» pot prendre més arguments, de manera que podem afegir més d'un nombre:

    (+ 3 5 6)

I, com era d'esperar, s'obté 14.

Fins ací, tot bé escrivim una instrucció Scheme i s'executa immediatament a la finestra de la consola Script-Fu. Ara avís de precaució

#### 3.1.5. Aneu amb compte amb els parèntesis extres

Si sou com jo, estareu acostumats a utilitzar els parèntesis extres, com quan teclegeu una equació matemàtica complexa i en voleu separar les parts amb parèntesis, i així fer-la més clara. En l'Scheme, cal ser acurat i no inserir aquests parèntesis extres de manera incorrecta. Per exemple, dir que volem sumar 3 al resultat de sumar 5 més 6 i després sumar-hi 7:

    3 + (5 + 6) + 7 = ?

Sabent que l'operador «`+`» pot utilitzar una llista de nombres per a sumar, podríeu estar temptats a escriure:

    (+ 3 (5 6) 7)

Tanmateix, això és incorrecte. Recordeu que cada declaració en Scheme comença i acaba amb parèntesi, així que l'intèrpret Scheme pensarà que intenta cridar una funció anomenada «5» en el segon grup de parèntesi, en lloc de sumar aquests nombres abans de sumar-hi el 3.

La forma correcta d'escriure-la seria:

    (+ 3 (+ 5 6) 7)

#### 3.1.6. Assegureu-vos de tenir l'espai apropiat

Si esteu familiaritzats amb altres llenguatges de programació, com el C/C++, Perl o Java, se sap que no necessitareu espais blancs al voltant dels operadors matemàtics per a formar una expressió:

            3+5, 3 +5, 3+ 5

Aquestes formulacions són acceptades per C / C ++, Java o Perl. Però aquest no és el cas de l'Scheme, ja que per a ser correctament interpretat ha de tenir un espai després d'un operador matemàtic o qualsevol altra funció o operador.

Practiqueu una mica amb operacions matemàtiques simples en la consola de Script-Fu fins que estigueu còmodes amb aquests conceptes inicials.

2.4. Diferents tipus de Script-Fus |  | 3.2. Variables i funcions

Report a bug in GIMP Informa d'un error de documentació