2017-05-30 1 views
1

Pour ce que je sais dans les langages fonctionnels est courant d'utiliser lambda pour faire référence à des fonctions anonymes, mais je ne vois pas vraiment utile d'utiliser:quelle est la raison d'utiliser lambda dans ce scénario?

(define square 
    (lambda (x) (* x x))) 

au lieu de

(define (square x) 
    (* x x)) 

pourquoi le premier formulaire utilisé dans presque tous les documents que j'ai trouvé concernant Scheme? Merci

Répondre

1

J'utilise toujours cette syntaxe car elle est explicite. lambda définit une fonction. Les fonctions n'ont pas de nom. Ensuite, vous affectez cette fonction à une variable. Les variables ont des noms. La forme (define (f x) ...) est simplement du sucre syntaxique pour un cas très courant, mais obscurcit le fait que le schéma est un lisp-1.