Shammer's Philosophy

My private adversaria

Lisp の member 関数

member 関数は、最低2つの引数を必要とする。

(member 'a (list 'b 'c))
NIL

最初の引数が、2つ目の引数で渡されたリストの中に含まれていれば、それ以降の要素をリストとして返す。ClozureCL で member を使うと、次のようにリファレンス(?)が出る。

MEMBER : (ITEM LIST &KEY TEST TEST-NOT KEY)

&KEY というのは、キーワード引数というものらしい。この関数だと、キーワード引数として

  • KEY
  • TEST
  • TEST-NOT

の3つをとり得る、という意味のようだ。関数ごとにキーワード引数を指定できるものがあり、それを指定することである程度関数の動作をカスタマイズできる。う〜ん・・・使いこなせるようになるのは少し先だろう。