2018年7月15日日曜日

(unintern 'function)

 けっこうdefmethodが好きだ。
 引数の型によって処理をディスパッチできるので同じ名称をつけることができる。ただ、REPLでdefunで定義したものをあらためてdefmethodにしようとするエラーになってしまう1。いちいち、restartさせなければ、ならず……ああ?
 まてよ、所詮、シンボル。
 もしかしたら。

(unintern 'function)

 で、いけるんじゃね?
 defmethodで定義できるようになるんじゃね?
 ——いけた2

Footnotes:

1

SBCLだけ?

2

追記。いけたと思っていたのだけど、だめなケースもあるみたいで
方法を探してみたところ

(fmakunbound 'function)

で、できるらしい。