F: Wann, wenn überhaupt, ist es sinnvoll, a scharf zu zitieren lambda
, und wann, wenn überhaupt, müssen wir a nicht scharf zu zitieren lambda
?
Die Leute benutzen lambda
s auf drei Arten:
- einfach:
(lambda (x) x)
- zitiert:
'(lambda (x) x)
- scharf zitiert:
#'(lambda (x) x)
In diesem SO-Thread werden die drei Typen erörtert, in diesem SO-Thread wird erläutert, warum nicht zitiert werden soll (NB: not sharp quote ) lambda
, und in diesem SO-Thread werden auch die Unterschiede zwischen Zitieren und scharfem Zitieren erörtert.
Nun, der manuelle Knoten für anonyme Funktionen und der Docstring für die lambda
Notiz, dass lambda
s sich selbst zitieren:
Ein Aufruf des Formulars
(lambda ARGS DOCSTRING INTERACTIVE BODY)
ist selbsterklärend; Das Ergebnis der Auswertung des Lambda-Ausdrucks ist der Ausdruck selbst. Der Lambda-Ausdruck kann dann als eine Funktion behandelt werden ...
Es scheint also, dass (lambda (x) x)
und #'(lambda (x) x)
äquivalent sind, ist es aber '(lambda (x) x)
nicht (am wichtigsten beim Kompilieren von Bytes).
Es sieht aus wie würde man selten wollen , zitiert ein lambda
, aber es ist mir unklar, wann, wenn überhaupt, sollten wir oder sollte nicht scharf Zitat:
- Ist scharfes Zitieren
lambda
einfach eine stilistische Wahl, oder gibt es Umstände, unter denen scharfes Zitieren tatsächlich nützlich ist? - Gibt es Umstände, unter denen wir a nicht scharf zitieren dürfen
lambda
, das heißt, wenn dies die Bedeutung des Codes verändern würde?