P: Quando, se for o caso, é útil fazer aspas a a lambda
e quando, se for o caso, não devemos citar a a lambda
?
As pessoas usam lambda
s de três maneiras:
- avião:
(lambda (x) x)
- citado:
'(lambda (x) x)
- citações nítidas:
#'(lambda (x) x)
Esse thread SO discute os três tipos, esse thread SO explica por que não citar (NB: not -sharp-quote ) lambda
s, e esse thread SO também discute as distinções entre aspas e aspas .
Agora, o nó manual em funções anônimas e a sequência de caracteres para lambda
observar que lambda
s são citados automaticamente:
Uma chamada do formulário
(lambda ARGS DOCSTRING INTERACTIVE BODY)
é citada automaticamente; o resultado da avaliação da expressão lambda é a própria expressão. A expressão lambda pode então ser tratada como uma função ...
Portanto, parece que (lambda (x) x)
e #'(lambda (x) x)
são equivalentes, mas '(lambda (x) x)
não são (o mais importante, quando a compilação de bytes).
Parece que alguém raramente gostaria de citar a lambda
, mas não está claro para mim quando, se é que deveríamos, deveríamos, ou não, citar:
- A citação nítida é
lambda
simplesmente uma escolha estilística ou há circunstâncias em que a citação nítida é realmente útil? - Existem circunstâncias em que devemos não sharp-citar um
lambda
, isto é, quando isso alteraria o significado do código?