Q: Quand, si jamais, est-il utile de citer un aiguisé lambda
, et quand, si jamais, ne faut-il pas citer un a lambda
?
Les gens utilisent lambda
s de trois manières:
- plaine:
(lambda (x) x)
- cité:
'(lambda (x) x)
- pointu:
#'(lambda (x) x)
Ce thread SO discute des trois types, ce thread SO explique pourquoi ne pas citer (NB: pas de guillemets pointus ) lambda
, et ce thread SO discute également des distinctions entre les citations et les citations pointues.
Maintenant, le nœud manuel sur les fonctions anonymes et la docstring pour lambda
noter que les lambda
s sont auto-cités:
Un appel du formulaire
(lambda ARGS DOCSTRING INTERACTIVE BODY)
est auto-citant; le résultat de l'évaluation de l'expression lambda est l'expression elle-même. L'expression lambda peut alors être traitée comme une fonction ...
Ainsi, il semble que (lambda (x) x)
et #'(lambda (x) x)
sont équivalents, mais '(lambda (x) x)
ne le sont pas (surtout, lors de la compilation d'octets).
Il semble que l'on veuille rarement citer un lambda
, mais je ne sais pas quand, si jamais, nous devrions, ou ne devrions pas, citer clairement:
- La citation nette est-elle
lambda
simplement un choix stylistique ou existe-t-il des circonstances dans lesquelles la citation nette est réellement utile? - Y a-t-il des circonstances dans lesquelles nous ne devons pas citer de façon précise a
lambda
, c'est-à-dire lorsque cela changerait le sens du code?