**●语法设定:**

**remprop** *symbol indicator* => *generalized-boolean*

**●参数和值:**

*symbol*---a *symbol*.

*indicator*---an *object*.

*generalized-boolean*---a *generalized boolean*.

**●详情:**

**remprop** removes from the *property list*[2] of *symbol* a *property*[1] with a *property indicator* *identical* to *indicator*. If there are multiple *properties*[1] with the *identical* key, **remprop** only removes the first such *property*. **remprop** 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. The permissible side-effects correspond to those permitted for **remf**, such that:

(remprop x y) == (remf (symbol-plist x) y)

**●例子:**

(setq test (make-symbol "PSEUDO-PI")) => #:PSEUDO-PI (symbol-plist test) => () (setf (get test 'constant) t) => T (setf (get test 'approximation) 3.14) => 3.14 (setf (get test 'error-range) 'noticeable) => NOTICEABLE (symbol-plist test) => (ERROR-RANGE NOTICEABLE APPROXIMATION 3.14 CONSTANT T) (setf (get test 'approximation) nil) => NIL (symbol-plist test) => (ERROR-RANGE NOTICEABLE APPROXIMATION NIL CONSTANT T) (get test 'approximation) => NIL (remprop test 'approximation) => true (get test 'approximation) => NIL (symbol-plist test) => (ERROR-RANGE NOTICEABLE CONSTANT T) (remprop test 'approximation) => NIL (symbol-plist test) => (ERROR-RANGE NOTICEABLE CONSTANT T) (remprop test 'error-range) => true (setf (get test 'approximation) 3) => 3 (symbol-plist test) => (APPROXIMATION 3 CONSTANT T)

**●副作用:**

The *property list* of *symbol* is modified.

**●受制于：** 无。

**●例外情况：**

Should signal an error of *type* **type-error** if *symbol* is not a *symbol*.

**●更多信息:**

**●说明:**

*Numbers* and *characters* are not recommended for use as *indicators* in portable code since **remprop** tests with **eq** rather than **eql**, and consequently the effect of using such *indicators* is *implementation-dependent*. Of course, if you've gotten as far as needing to remove such a *property*, you don't have much choice---the time to have been thinking about this was when you used **setf** of **get** to establish the *property*.

X3J13设计清单

◇首页 § ◎章节目录 § □内容索引 § ○符号索引 § △术语表 § ※设计草案