[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Proper use of function form
From: |
Tim Johnson |
Subject: |
Proper use of function form |
Date: |
Sun, 26 Apr 2020 15:27:15 -0800 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 |
Here is a key definition:
(define-key jinja2-mode-map (kbd "C-c i") #'jinja2-insert-var)
As I understand it, the sharp-quote (#') tells the compiler that
jinja2-insert-var is meant to be a function
The following quotation:
"it is always good practice to sharp quote every symbol that is the name
of a function, whether it's going into a |mapcar|, an |apply|, a
|funcall|, or anything else."
Can be found at
https://endlessparentheses.com/get-in-the-habit-of-using-sharp-quote.html
fuurther text there describes the special 'function form for which the
sharp-quote is a shorthand.
Suppose we are processing a sexp of alternating strings and symbols:
(setq my-keypairs '("h" my-h-func "g" my-g-func "f" my-f-func))
and using iteration to *programmatically* call define-key for multiple
key definitions as in
(define-key mymap ;; add to keymap
(kbd (concat ldr (nth ndx mylist))) ;; sequence as in "g"
(nth (+ ndx 1) mylist)) ;; command as in my-g-func
The form above is indeed a snippet from a defun that I have used for years
Would it be better to change (nth (+ ndx 1) mylist) to (function (nth (+
ndx 1) mylist)) ?
I note that help for 'function states a preference for using it with
function objects, but says nothing about processing a list. Hence I am
lobbying wiser heads than mine for opinions before I implement something
that might cause subtle problems down the road.
Emacs is GNU Emacs 26.3 (build 2, x86_64-pc-linux-gnu, X toolkit, Xaw
scroll bars)
on ubuntu 16.04
Thanks
-- f
Tim
tj49.com
- Proper use of function form,
Tim Johnson <=