1

I've got a lot of:

(desktop-save-mode 1)
(show-paren-mode 1)

which I'd like to collapse into:

(mapcar (lambda (fn) (fn 1)) '(desktop-save-mode show-paren-mode))

but I get an error:

Symbol’s function definition is void: fn

How can I call a list of functions with the same argument?

Drew
  • 75,699
  • 9
  • 109
  • 225
ftravers
  • 105
  • 3
  • 2
    You don't need to pass `1` to enable a minor mode, so `(mapc #'funcall '(...))` will do the trick. – Stefan Nov 21 '19 at 20:30
  • 2
    I'm certain this is a duplicate (for learning about `funcall` and friends), but I seem to be failing at searching. Refer to `C-h i g (elisp)Calling Functions` for the details. – phils Nov 22 '19 at 01:07

2 Answers2

2

(mapcar (lambda (fn) (funcall fn 1)) '(desktop-save-mode show-paren-mode))

Drew
  • 75,699
  • 9
  • 109
  • 225
gigiair
  • 2,124
  • 1
  • 8
  • 14
-3
desktop-save-mode

is defined thusly:

(define-minor-mode desktop-save-mode

so its not a function...

ftravers
  • 105
  • 3