I just put a call to eval in my code and I feel dirty now.
The context went something like this:
(eval (cons 'concat (my-function arg1 arg2)))
I had initially hoped to use
(concat . (my-function arg1 arg2))
...but this resulted in a call to
(concat my-function arg1 arg2)
Which was not what I expected.
Is there a better way I could've written this?
#emacs #lisp #elisp
Edit: Got my answer. I wanted:
(apply 'concat (my-func arg1 arg2))
Edit 2:
It turns out the code I really wanted was:
(string-join arg2 arg1)
I love reinventing the wheel because I didn't know it was already there.
Edit 3:
Here's the actual code:
(defun lambdamoo-run-text-replacements (str)
"Perform text replacements on the string"
(dolist (vals lambdamoo-text-replacements)
(let* ((from (car vals))
(to (cdr vals))
(split (split-string str from)))
(setq str (string-join split to))))
str)
Let's see if there's anything else I've reinvented here.
aburka π«£
in reply to Jonathan Lamothe • • •Jonathan Lamothe likes this.
Jonathan Lamothe
in reply to aburka π«£ • •Chris Ford
in reply to Jonathan Lamothe • • •