[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: eval trouble

From: Lennart Borgman (gmail)
Subject: Re: eval trouble
Date: Mon, 25 Aug 2008 22:59:24 +0200
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv: Gecko/20071031 Thunderbird/ Mnenhy/

David Kastrup wrote:
> "Lennart Borgman (gmail)" <address@hidden> writes:
>> Pascal J. Bourguignon wrote:
>>> "Lennart Borgman (gmail)" <address@hidden> writes:
>>>>> Here is the code that does NOT work:
>>>>> (defun mumamo-define-no-mode (mode-sym)
>>>>>   (let ((mumamo-repl4 (make-symbol (format "mumamo-repl4-%s" mode-sym)))
>>>> It works if I replace make-symbol with intern. But why does eval care
>>>> about that?
>>> eval doesn't care, but how would you be able to refer again to the
>>> defined thing if you don't have its name in some dictionary?
>> Thanks. I see. I thought eval interned the symbol, or perhaps rather
>> created an interned symbol. In this case it does not do that.
> Eval _does_ create an interned symbol.  But it is not EQ to the unique
> uninterned symbol that make-symbol creates.

I am a bit confused, but I guess you mean if the symbol does not exist:

(let ((sym (make-symbol "xýzw")))
  (eval `(progn (setq ,sym 1)
                (put ',sym 'some 'value))))

(mapatoms (lambda (atom)
            (when (string= (symbol-name atom)
              (error "Found %s" atom))))

reply via email to

[Prev in Thread] Current Thread [Next in Thread]