help-gnu-emacs
[Top][All Lists]
Advanced

[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:1.8.1.9) Gecko/20071031 Thunderbird/2.0.0.9 Mnenhy/0.7.5.666

David Kastrup wrote:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> 
>> Pascal J. Bourguignon wrote:
>>> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> 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)
                           "xyzw")
              (error "Found %s" atom))))





reply via email to

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