P: Quando, se for o caso, é útil fazer aspas a a lambdae quando, se for o caso, não devemos citar a a lambda?
As pessoas usam lambdas 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 ) lambdas, 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 lambdaobservar que lambdas 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 é
lambdasimplesmente 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?