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.
Omar Antolín
in reply to Jonathan Lamothe • • •Jonathan Lamothe
in reply to Omar Antolín • •Jonathan Lamothe
in reply to Jonathan Lamothe • •@Omar Antolín Actually, looking more closely at it, it might just do the trick.
I love it when I spend hours re-writing code that essentially already exists. ;)
Jonathan Lamothe
in reply to Jonathan Lamothe • •In the end, I wound up just binding tab to
dabbrev-expand. 🙃It might seem like I wasted a bunch of time writing that, but at least I learned a bunch along the way.