Function COMPLEMENT

UP


Function COMPLEMENT

Function COMPLEMENT

構文

complement function => complement-function

引数と戻り値

function - 関数
complement-function - 関数

定義

functionとしていくつかの引数をとる関数を返却します。 その関数は、functionとして同じ副作用の動作をしますが ただひとつだけの値を返却します。 返却値はgeneralized-booleanであり、 functionの第一返却値として返却されただろうものの 真偽値の反対を返却します。 つまり、functiontrueを返却したとき complement-functionの第一返却値はfalseであり、 functionfalseを返却したとき 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

副作用

なし。

影響

なし。

例外

なし。

参考

not

備考

(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と一緒に使うことが好まれます。


TOP, Github