Procédure lambda en scheme - Langages fonctionnels - Programmation
Marsh Posté le 24-12-2007 à 13:19:13
Les deux syntaxes sont exactement équivalentes, la première étant en fait un alias pour la seconde (quand un interpréteur scheme trouve la première syntaxe, il la transforme automatiquement en la seconde)
Quand à savoir pourquoi la seconde syntaxe est souvent utilisée dans les exemples, probablement à cause de sa régularité: elle correspond exactement à l'utilisation classique de define (define nom valeur), la valeur étant ici une fonction anonyme.
La première syntaxe utilise bien le nom define mais une syntaxe qui diffère de son utilisation habituelle, et peut donc amener à une confusion sur le rôle/fonctionnement de define.
Marsh Posté le 24-12-2007 à 12:59:41
Bonjour
Je dois faire un apprentissage express des bases de Scheme pour faire un travail (sur la méta-programmation et la réflection).
J'ai une petite question :
Si je déclare une procédure
(define (add2 x)
(+ x 2))
ou
(define add2
(lambda (x)
(+ x 2)))
Qu'apporte le lambda ? ces 2 procédures sont elles identiques ? D'après ce que j'ai compris le lambda permet de créer une procédure sans la lier à une variable mais dans le cas ou on la lie quand même est-ce utile ? Car la première forme semble plus intuitive et pourtant c'est toujours la 2eme que je vois dans des exemples.