> 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.