GNU bug report logs - #11782
24.1; closure is not self-quoting

Previous Next

Package: emacs;

Reported by: Christopher Schmidt <christopher <at> ch.ristopher.com>

Date: Mon, 25 Jun 2012 18:52:01 UTC

Severity: normal

Found in version 24.1

Done: Christopher Schmidt <christopher <at> ch.ristopher.com>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Christopher Schmidt <christopher <at> ch.ristopher.com>
To: 11782 <at> debbugs.gnu.org
Subject: bug#11782: 24.1; closure is not self-quoting
Date: Tue, 28 May 2013 23:35:08 +0100 (BST)
Stefan Monnier <monnier <at> IRO.UMontreal.CA> writes:

Hi Stefan,

> Could you expand on why you think it's severe?

I think this issue is severe because the behaviour is odd and follows
neither other mature Lispy languages nor the reference manual.

    (info "(elisp)Lambda Expressions")

    In Emacs Lisp, such a list is valid as an expression--it evaluates
    to itself.

As I said 11 month ago, I hit on this issue a few times already.  So did
others.  In most cases I had a lambda form that was eval'ed twice due to
macro expansion.

    ;; -*- lexical-binding: t -*-

    (defmacro a ()
      (let ((l (lambda () )))
        `(funcall ,l)))

    (a)

I realise there is a technical need for lambda's to evaluate to closures
in a lexical environment.  Are there any technical reasons for lexical
closures to not self-quote?

BTW I am perfectly fine with just fixing the docs.

        Christopher




This bug report was last modified 11 years and 362 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.