I doesn't take much Googling to find discussions about misunderstandings about
eval, especially in the context of Lisp. The top answer to a StackOverflow
post seems to cover the points I would make and more .
Learn how to use apply, funcall, and friends /first/. Then consider
user-defined macros (you're already using library-provided ones). And finally
consider eval. . . but by then you really may not have a need for it.