P: ¿ Cuándo, si alguna vez, es útil citar con precisión a lambda, y cuándo, si alguna vez, no debemos citar con precisión a lambda?
Las personas usan lambdas de tres maneras:
- llanura:
(lambda (x) x) - citado:
'(lambda (x) x) - comillas afiladas:
#'(lambda (x) x)
Este subproceso SO analiza los tres tipos, este subproceso SO explica por qué no se debe citar (NB: no una comilla nítida ) lambda, y este subproceso SO también discute las distinciones entre comillas y comillas nítidas.
Ahora, el nodo manual sobre funciones anónimas y la cadena de documentación para lambdatener en cuenta que los lambdas son autocomillas
Una llamada de la forma
(lambda ARGS DOCSTRING INTERACTIVE BODY)es auto citando; El resultado de evaluar la expresión lambda es la expresión misma. La expresión lambda se puede tratar como una función ...
Entonces, parece que (lambda (x) x)y #'(lambda (x) x)son equivalentes, pero '(lambda (x) x)no lo es (lo más importante, cuando se compila byte).
Parece que uno raramente querría citar un lambda, pero no me queda claro cuándo, si alguna vez, deberíamos, o no, citar con nitidez:
- ¿Las comillas afiladas son
lambdasimplemente una elección estilística, o hay circunstancias en las que las comillas afiladas son realmente útiles? - ¿Hay circunstancias en las que tenemos que no afilada citar una
lambda, es decir, cuando se hace de manera alteraría el significado del código?