|
From: | Lennart Borgman (gmail) |
Subject: | Re: Should let symbols be interned? |
Date: | Mon, 22 Jan 2007 01:31:40 +0100 |
User-agent: | Thunderbird 1.5.0.9 (Windows/20061207) |
Juanma Barranquero wrote:
On 1/22/07, Lennart Borgman (gmail) <address@hidden> wrote:However the real question was of course if the same obarray is used for symbols created by let variable declarations (did I get everything right now?;-) as for symbols created by "defvar" variables.(progn (defvar my-sym t) (put 'my-sym 'my-prop t) (let (my-sym) (message "symbol: %S -- property: %S" my-sym (get 'my-sym 'my-prop)))) => "symbol: nil -- property: t" If `let' interned a new symbol in another obarray, the above would answer: "symbol: nil -- property: nil". That would be very surprising. A function call at arbitrary deep doesn't usually care whether a symbol it's using was let-bound or not, only its value and other properties. `let' is not advertised as binding anything other than a symbol's value... /L/e/k/t/u
Thanks, but I did not mean on this level. On this level I would expect it to be transparent to the user/programmer. However in intern-soft it might be more visible if another obarray was used for let style variable symbols.
But it is clear to me now that the same obarray is used. As I slightly suggested in the answer to Stefan handling insertion in the big obarray 'obarray may take long time and that was what made me believe that there migt be a special obarray for let. I know however nothing about the time required for insertion in a smaller obarray versus the big one. (And I do not know how small "small" in avarage is.)
[Prev in Thread] | Current Thread | [Next in Thread] |