Class NUMBER-TEMPLATE
Package:
COMMON-LISP.EXTENSIONS.DATA-AND-CONTROL-FLOW.UNIFICATION
Class Precedence List:
NUMBER-TEMPLATE, TYPE-TEMPLATE, TEMPLATE, STANDARD-OBJECT, T.
Known Subclasses:
None.
Slots:
None.
Description:
The NUMBER-TEMPLATE class denotes those object that are used to unify against a NUMBER.
Template Syntax:
#T42
#T(number 42)
#T(number ?num)
#T#C(1.2 3.4)
The NUMBER-TEMPLATE syntax denotes a NUMBER. NUMBER-TEMPLATEs can only unified against a NUMBER.
Examples:
cl-prompt> (setf e (unify 42 #T42)) #<ENVIRONMENT xxx> cl-prompt> (setq e (unify 42 #T())) --> Error: UNIFICATION-FAILURE cl-prompt> (setf e (unify 42 #T(number ?num))) #<ENVIRONMENT xxx> cl-prompt> (find-variable-value '?num e) 42 T
Affected By:
None.
Exceptional Situations:
Unifying an NUMBER-TEMPLATE against a non-NUMBER object results in an UNIFICATION-FAILURE error being signaled.
See Also:
UNIFY
Notes:
There is no COMPLEX-NUMBER-TEMPLATE class, although a case for it can be easily made.