A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://www.lispworks.com/documentation/lw60/CLHS/Body/f_comple.htm below:

CLHS: Function COMPLEMENT

Function COMPLEMENT

Syntax:

complement function => complement-function

Arguments and Values:

function---a function.

complement-function---a function.

Description:

Returns a function that takes the same arguments as function, and has the same side-effect behavior as function, but returns only a single value: a generalized boolean with the opposite truth value of that which would be returned as the primary value of function. That is, when the function would have returned true as its primary value the complement-function returns false, and when the function would have returned false as its primary value the complement-function returns true.

Examples:

 (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

Side Effects: None.

Affected By: None.

Exceptional Situations: None.

See Also:

not

Notes:

 (complement x) ==  #'(lambda (&rest arguments) (not (apply x arguments)))

In Common Lisp, functions with names like ``xxx-if-not'' are related to functions with names like ``xxx-if'' in that

(xxx-if-not f . arguments) ==  (xxx-if (complement f) . arguments)

For example,

 (find-if-not #'zerop '(0 0 3)) == 
 (find-if (complement #'zerop) '(0 0 3)) =>  3

Note that since the ``xxx-if-not'' functions and the :test-not arguments have been deprecated, uses of ``xxx-if'' functions or :test arguments with complement are preferred.

The following X3J13 cleanup issue, not part of the specification, applies to this section:
Copyright 1996-2005, LispWorks Ltd. All rights reserved.

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4