C'est parce que
(define (foo x)
42)
ajouter une forme particulière à la langue.
1.
(define foo 45)
est une forme spéciale
2.
(lambda (x) (+ x 1)
Est-ce une autre forme spéciale si:
(define foo (lambda (x) (+ x 1)))
Ajouté aucune autre forme particulière que les 2 ci-dessus.
L'ajout d'un raccourci pour définir une fonction est donc un sucre syntaxique. Comme le schéma tend à être minimaliste, il n'est pas nécessaire que le langage ajoute une forme plus spéciale que nécessaire.Maintenant, je pense que:
(define foo (x) (+ x 1))
est lisible et il ne coûte pas bouillie de maïs remeber et comprendre donc je ne me dérange pas de l'avoir dans le schéma.
Selon quel guide de style? –
Où avez-vous lu que le style 1 est préféré? Je n'ai jamais vu une telle chose. Lambda est pour les fonctions anonymes, continuation-passing, mapping, et fermetures de retour. C'est utile pour beaucoup de choses, mais je préfère la compacité d'utiliser '(define (fun x y) ...)'. –
Préférence personnelle. – grettke