% Function COMPLEMENT
Function COMPLEMENT
complement
function => complement-function
function - 関数
complement-function - 関数
functionとしていくつかの引数をとる関数を返却します。 その関数は、functionとして同じ副作用の動作をしますが ただひとつだけの値を返却します。 返却値はgeneralized-booleanであり、 functionの第一返却値として返却されただろうものの 真偽値の反対を返却します。 つまり、functionがtrueを返却したとき complement-functionの第一返却値はfalseであり、 functionがfalseを返却したとき complement-functionの第一返却値はtrueです。
(funcall (complement #'zerop) 1) => true
(funcall (complement #'characterp) #\A) => false
(funcall (complement #'member) 'a '(a b c)) => false
(funcall (complement #'member) 'd '(a b c)) => true
なし。
なし。
なし。
(complement x) == #'(lambda (&rest arguments) (not (apply x arguments)))
Common Lispでは、
「xxx-if-not
」のような名前を持つ関数は、
「xxx-if
」のような名前を持つ関数と、
次のような関係があります。
(xxx-if-not f . arguments) == (xxx-if (complement f) . arguments)
例えば、次のようになります。
(find-if-not #'zerop '(0 0 3)) ==
(find-if (complement #'zerop) '(0 0 3)) => 3
「xxx-if-not
」のような関数と:test-not
引数は非推奨です。
「xxx-if
」のような関数と:test
引数を、
complement
と一緒に使うことが好まれます。