関数に別名をつけたい - lisp-cookbook-ja/common-lisp GitHub Wiki

プログラミングをするなかで、問題領域にあわせた語彙を使った方がコードが読みやすい場合があります。そういうときは、関数を別名で呼ぶことができると便利です。

例えば、find-all-ifという語彙を使いたいとします。ただし機能的には、ANSIのremove-if-notという関数と同等だとしましょう。そんなときは、シンボル間で関数定義をコピーすればOKです。

(remove-if-not #'evenp '(1 2 3 4 5))
;=> (2 4)

(setf (symbol-function 'find-all-if) #'remove-if-not)
;=> #<Function REMOVE-IF-NOT>

(find-all-if #'evenp '(1 2 3 4 5))
;=> (2 4)