CLHS: Macro REMF

#

Macro REMF

Syntax:

remf place indicator => generalized-boolean

Arguments and Values:

place---a place.

indicator---an object.

generalized-boolean---a generalized boolean.

Description:

remf removes from the property list stored in place a property[1] with a property indicator identical to indicator. If there are multiple properties[1] with the identical key, remf only removes the first such property. remf returns false if no such property was found, or true if a property was found.

The property indicator and the corresponding property value are removed in an undefined order by destructively splicing the property list. remf is permitted to either setf place or to setf any part, car or cdr, of the list structure held by that place.

For information about the evaluation of subforms of place, see Section 5.1.1.1 (Evaluation of Subforms to Places).

Examples:

     (setq x (cons () ())) =>  (NIL)
     (setf (getf (car x) 'prop1) 'val1) =>  VAL1
     (remf (car x) 'prop1) =>  true
     (remf (car x) 'prop1) =>  false

Side Effects:

The property list stored in place is modified.

Affected By: None.

Exceptional Situations: None.

See Also:

remprop, getf

Notes: None.

The following X3J13 cleanup issues, not part of the specification, apply to this section:

- PUSH-EVALUATION-ORDER:FIRST-ITEM
- REMF-DESTRUCTION-UNSPECIFIED:X3J13-MAR-89
- PLIST-DUPLICATES:ALLOW

Copyright 1996-2005, LispWorks Ltd. All rights reserved.