emacs-devel
[Top][All Lists]
Advanced

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

Re: Help making setq work on dynamic symbol


From: Eli Zaretskii
Subject: Re: Help making setq work on dynamic symbol
Date: Fri, 18 Oct 2024 18:00:18 +0300

> From: Ship Mints <shipmints@gmail.com>
> Date: Fri, 18 Oct 2024 10:40:47 -0400
> 
> (defmacro my/setq (name value)
>   (let ((sym (intern name)))
>     `(setq ,sym ,value)))
> (defvar foo nil)
> (my/setq "foo" t) ; this works
> (intern (concat "f" "oo")) ; this works
> (my/setq (concat "f" "oo") t) ; this fails with...
> 
> Debugger entered--Lisp error: (wrong-type-argument stringp (concat "f" "oo"))
>   intern((concat "f" "oo"))
>   (let ((sym (intern name))) (list 'setq sym value))
>   (closure (t) (name value) (let ((sym (intern name))) (list 'setq sym 
> value)))((concat "f" "oo") t)
>   macroexpand((my/setq (concat "f" "oo") t))
>   elisp--eval-last-sexp(nil)

my/setq is a macro, not a function.



reply via email to

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