Emacsのシンボルは、通常の値を保持する場所とは別に、function cellという場所を持っている。 そして、リストを評価する際に、「先頭がシンボルならfunction cellを確認し、中身を関数として実行する」という動作をする。

function-cellに値を入れるにはfsetを使う。 値を取得するには、symbol-functionを使う。

(fset 'hotoku '(lambda () (message "hotoku")))
;; => (lambda nil (message "hotoku"))
(hotoku)
;; => "hotoku"
(symbol-function 'hotoku)
;; => (lambda nil (message "hotoku"))

fsetは、値が関数かどうかは確認しないので、どんな値でも入れようと思えば入れられる。