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 lambdas 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 lambdanoter que les lambdas 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
lambdasimplement 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?