venerdì 13 gennaio 2012

Scheme (Gimp Script-fu)

I file script.scm vanno copiati nella cartella .gimp-x.x/scripts

; Commento file.scm

; Somma due numeri (restituisce 5)
(+ 2 3)

; Definisce una variabile x
(let* ( (x 3) ) )

; Definisce due variabili locali (a,b) e ne restituisce la somma
(let* ( (a 1) (b 2) ) (+ a b) )

; Definisce una lista in una variabile ( '(a b c) )
(let* ( (x '(1 3 5))) x)

; Aggiunge un elemento all'inizio della lista
(cons 1 '(2 3 4) ) --> (1 2 3 4)

; Creazione di una lista
(list 1 2 a b) --> Crea la lista usando i valori di a e b precedentemente dichiarati

; Accedere ad una lista (car = Restituisce il primo elemento, cdr = la porzione restante dopo il primo elemento)
(car '("uno" "due")) --> Restituisce "uno"
(cdr '("uno" "due")) --> Restituisce "due"
(cdr '("uno")) --> Restituisce () (Il primo elemento non viene considerato)
; Per prendere un elemento specifico, usare car e cdr insieme
(let* (( x '("uno" "due" "tre") )) (car (cdr x)) ) --> Restitisce "due"

; Per gli array multidimensionali, si può usare (cadar x): abbreviazione di (car (cdr (car x) ) )
(let* (( x '(("uno-a" "uno-b") "due" "tre" "quattro") )) (cadar x) ) --> Restituisce "uno-b"

; Definisce la variabile num con let* e le assegna un nuovo valore con set!
(let* ( (num 10) ) (set! num (+ num num) ) ) --> Restituisce 20
(let* ( (num 10) ) (set! num (+ 3) ) ) --> Restituisce 3

; Definisce la funzione Somma che accetta due parametri (a,b) e ne restituisce la somma
(define (Somma a b) (+ a b))

; Chiama la funzione somma
(Somma 1 3) --> Restituisce 4

; Convenzioni
script-fu-abc --> nome della funzione di uno script
inText --> Nome di un argomento
theVar --> Nome di una variabile

; Registrare la funzione
script-fu-register --> All'inizio dello script, serve a rendere la funzione utilizzabile da gimp

Nessun commento:

Posta un commento