TOP
tetris Programmez un Tetris en Java
360 pages PDF pour apprendre à votre rythme.
Développez des jeux vidéo en Java.
www.jdevmaker.com
Gimp 2.4
Documentation
Tutoriels
Ressources
Divers

Dernière mise à jour le 07 avr 2008
consultée 2531 fois
Apprendre  ›  Écrire un script-fu  ›  lambda

 

Scheme : lambda

Ce document est sous un contrat Creative Commons.

 

Nous ne l'avons pas vu, mais le Scheme utilise des formes complexe, mais peu aussi utiliser des formes simplifiés de ces formes complexe, et parvenir au même résultat. C'est le cas avec les fonctions let, let* et letrec.

Le Scheme est bâti sur un formalisme mathématique appelé le lambda calcul, et lambda est une pierre angulaire du Scheme.

Cependant nous abordons un sujet intéressant mais qui dépasse largement le cadre de la documentation Scheme pour Gimp. Ces formes sont quasi inutiles à Gimp (parce que pouvant être remplacés par d'autres plus simple), et de plus elle renvoie a des notions de programmation pour le moins complexe, dont je ne parlerais même pas car ça ne rigole plus...

Comme on voit parfois lambda dans certains scripts, je vais seulement vous démontrer les simplifications ou réécriture que l'on peut faire, pour tentez de vous faire comprendre son utilisation.

 

Souvenons nous que l'on peut utiliser define de 2 façons :

lambda retourne ce que l'on appel une fonction anonyme.

Sa forme est :

(lambda (p1 p2 pm) exp1 exp2 expn)

par exemple :

(lambda (x y) (+ x y))

Attribuons les arguments 2 et 5 à cette fonction anonyme :

Tapez dans la console Script-fu :

((lambda (x y) (+ x y)) 2 5)

=> ((lambda (x y) (+ x y)) 2 5)
7

Vous ne voyez peut-être pas encore le rapport avec la fonction (define (addition x y) (+ x y)). C'est qu'il vous manque le lien... Sachez qu'il est possible de définir une variable comme étant une fonction anonyme. Ce que nous allons faire avec la variable addition2 :

Tapez dans la console Script-fu :

(define addition2 (lambda (x y) (+ x y)))

=> (define addition2 (lambda (x y) (+ x y)))
#<CLOSURE (x y) (+ x y)>

Tapez dans la console Script-fu :

(addition2 2 5)

=> (addition2 2 5)
7

Vous voyez maintenant que la syntaxe de la forme ci-dessus peut être simplifié en :

(define (addition2 x y) (+ x y))

 

Valide XHTML 1.0 Strict
Valide CSS 2.0
Valide Accessibilité
Creative Commons License

Tous les documents et ressources sont sous un contrat Creative Commons.