ルーチン、日常、基本タスクを自動化するためにpythonからelispに移行する経験豊富なlisp、scheme、clojureプログラマー:次のことから私は非常に驚きました ielm
ELISP> (setq h2 (make-hash-table))
#s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ())
ELISP> (puthash "a" 1 h2)
1 (#o1, #x1, ?\C-a)
ELISP> (gethash "a" h2)
nil
え?キーと値が存在するように見えます:
ELISP> h2
#s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8 data ("a" 1))
/額を平手打ち。私は完全に明白な何かを見逃しているに違いありません。情報は言う:
-- Function: gethash key table &optional default
This function looks up KEY in TABLE, and returns its associated
VALUE—or DEFAULT, if KEY has no association in TABLE.
すごい。gethash
以外のものを返すことができるかどうか見てみましょうnil
:
ELISP> (gethash "a" h2 'fubar)
fubar
ワオ。わかりました、思ったよりもずっと気難しいです。いったい何が悪いのでしょうか?
:test
、例のパラメータとしてシンボルを渡していないと思います...