一意なID(ポインタアドレス)取得

たまに、(正確な用語ではないが)オブジェクトごとに一意なIDを取得したいことがある。
Cで云うポインタがあれば、それが適切なのだが、common lispにはポインタを取得する方法は定義されていない(と思う)。


ただ、SBCLに限れば、ポインタ(アドレス)を取得する方法があったので、それをオブジェクトのIDとして扱うことが出来る。

(defun obj-id (obj)
  (sb-kernel:get-lisp-obj-address obj))