一行目で、総称関数 is-zero に、そのパラメータを EQL スペシャライザによってインスタンス「0」のみに限定したメソッドを登録している。二行目では、あらゆるパラメータに対して NIL を返すメソッドを登録している。この結果、is-zero 呼び出しの際、パラメータが 0 のときは一行目に定義されたメソッドが起動して T が返る。それ以外は二行目のメソッドが起動して NIL が返ってくる。(defmethod is-zero ((self (eql 0))) T) (defmethod is-zero (self) NIL)
--sumim(is-zero 0) ==> T (is-zero 1) ==> NIL (is-zero "a") ==> NIL (is-zero (lambda (x) (+ x x))) ==> NIL
このページを編集 (1463 bytes)
以下の 3 ページから参照されています。 |
This page has been visited 5385 times.