GNU bug report logs -
#6893
evaluating `'#'(lambda (b) b)8 ; => 8 with `eval-last-sexp' "C-x C-e" in `emacs-lisp-mode'
Previous Next
Reported by: MON KEY <monkey <at> sandpframing.com>
Date: Sat, 21 Aug 2010 21:54:02 UTC
Severity: normal
Done: Stefan Monnier <monnier <at> iro.umontreal.ca>
Bug is archived. No further changes may be made.
Full log
View this message in rfc822 format
[Message part 1 (text/plain, inline)]
Your bug report
#6893: evaluating `'#'(lambda (b) b)8 ; => 8 with `eval-last-sexp' "C-x C-e" in `emacs-lisp-mode'
which was filed against the emacs package, has been closed.
The explanation is attached below, along with your original report.
If you require more details, please reply to 6893 <at> debbugs.gnu.org.
--
6893: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=6893
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
> Interactive invocation of `eval-last-sexp' (e.g. "C-x C-e" ) in
> Emacs-lisp mode buffer for this form:
> `'#'(lambda (b) b)8
> ;=> 8
C-x C-e doesn't evaluate "the expression on the line" but "the last sexp
before point".
The "last-sexp" is just "8" (try C-M-b to see what it is), so whatever
other sexp you put before won't make any difference.
Stefan
[Message part 3 (message/rfc822, inline)]
Interactive invocation of `eval-last-sexp' (e.g. "C-x C-e" ) in
Emacs-lisp mode buffer for this form:
`'#'(lambda (b) b)8
;=> 8
`eval-last-sexp' for this makes (some) sense:
`'#'(lambda (b) b)
;=> (quote (function (lambda (b) b)))
And so, presumably the above is equivalent to:
(eval '(list 'quote '(function (lambda (b) b))))
;=> (quote (function (lambda (b) b)))
But what is the equivalent form which would explain the results for
following:
`'#'(lambda (b) b)8
;=> 8
Surely it isn't this:
(funcall (eval (eval (eval '(list 'quote '(function (lambda (b) b)))))) 8)
;=> 8
If it is, then why is eval'ing the same `'#'(lambda (b) b)8 form with
`eval-expression' (e.g. "M-:") met with the message:
"Trailing garbage following expression"
Likewise, giving `eval-expression' this form lands me in the debugger:
(`'#'(lambda (b) b) 8)
;=> Debugger entered--Lisp error:
(wrong-number-of-arguments #[(structure) "\301!A\207"
[structure backquote-process] 2 1720176] 2)
Reproducable on 23.2 with emacs -Q
--
/s_P\
This bug report was last modified 14 years and 275 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.