User Tools


Function CONSTANTP

Syntax

  • constantp form &optional environmentgeneralized-boolean

Arguments and Values

Description

Returns true if form can be determined by the implementation to be a constant form in the indicated environment; otherwise, it returns false indicating either that the form is not a constant form or that it cannot be determined whether or not form is a constant form.

The following kinds of forms are considered constant forms:

If an implementation chooses to make use of the environment information, such actions as expanding macros or performing function inlining are permitted to be used, but not required; however, expanding compiler macros is not permitted.

Examples

(constantp 1)

true

(constantp 'temp)

false

(constantp ''temp))

true

(defconstant +this-is-a-constant+ 'never-changing)

+THIS-IS-A-CONSTANT+

(constantp '+this-is-a-constant+)

true

(constantp "temp")

true

(defparameter *a* 6)

*A*

(constantp *a*)

true

(constantp '(sin pi))

implementation-dependent

(constantp '(car '(x)))

implementation-dependent

(constantp '(eql x x))

implementation-dependent

(constantp '(typep x 'nil))

implementation-dependent

(constantp '(typep x 't))

implementation-dependent

(constantp '(values +this-is-a-constant+))

implementation-dependent

(constantp '(values 'x 'y))

implementation-dependent

(constantp '(let ((a '(a b c))) (+ (length a) 6)))

implementation-dependent

Side Effects

None.

Affected By

The state of the global environment (e.g. which symbols have been declared to be the names of constant variables).

Exceptional Situations

None.

See Also

Notes

None.

\issue{CONSTANTP-DEFINITION:INTENTIONAL} \issue{CONSTANTP-ENVIRONMENT:ADD-ARG} \issue{SYNTACTIC-ENVIRONMENT-ACCESS:RETRACTED-MAR91}