lbuild-add function
lbuild-add-list function
lbuild-list function
- loc class
+ locative class
+ locativep function
locf macro
- locp function
make-list-builder function
mappend function
maybe-print-unreadable-object macro
sb-pcl::standard-specializer
sb-mop:eql-specializer [sb-pcl::exact-class-specializer sb-pcl::specializer-with-object]
cl:structure-object
- loc
+ locative
Methods:
sod-parser:classify-condition
true locatives, such that two locatives compare equal if and only if they
refer to the same place; but that doesn't work for these locatives.
-\begin{describe}{cls}{loc}
+\begin{describe}{cls}{locative}
The type of locative objects.
\end{describe}
-\begin{describe}{fun}{locp @<object> @> @<generalized-boolean>}
+\begin{describe}{fun}{locativep @<object> @> @<generalized-boolean>}
Return non-nil if and only if @<object> is a locative.
\end{describe}
;;;--------------------------------------------------------------------------
;;; Locatives.
-(export '(loc locp))
-(defstruct (loc (:predicate locp) (:constructor make-loc (reader writer)))
+(export '(locative locativep))
+(defstruct (locative (:predicate locativep)
+ (:constructor make-locative (reader writer))
+ (:conc-name loc-))
"Locative data type. See `locf' and `ref'."
(reader nil :type function)
(writer nil :type function))
(valtmps valforms newtmps setform getform)
(get-setf-expansion place env)
`(let* (,@(mapcar #'list valtmps valforms))
- (make-loc (lambda () ,getform)
- (lambda (,@newtmps) ,setform)))))
+ (make-locative (lambda () ,getform)
+ (lambda (,@newtmps) ,setform)))))
(export 'ref)
(declaim (inline ref (setf ref)))