Emacs Lispのシンボルの定義を確認したくなった。
name
はシンボル名、 val
は値セル function
は関数セルといった感じだろうか。
ついでに fset
の定義も確認する。
いろいろな処理を行っているが、本質的な部分は最後の方に実行している set_symbol_function (symbol, definition);
となる。そこで set_symbol_function
についても確認する。
(sym)->u.s.function
は第1引数に渡したLisp_Object symの共用体uの先頭に配置されている構造体sの function
スロットだ。そこに第2引数に渡したLisp_Object functionを代入している。なるほど。少し理解できた。