Changeset 11340
- Timestamp:
- 10/11/08 16:15:53 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/j/src/org/armedbear/lisp/macros.lisp
r11297 r11340 66 66 67 67 ;; Adapted from SBCL. 68 (defmacro push ( item place)68 (defmacro push (&environment env item place) 69 69 (if (and (symbolp place) 70 (eq place (macroexpand place )))70 (eq place (macroexpand place env))) 71 71 `(setq ,place (cons ,item ,place)) 72 72 (multiple-value-bind (dummies vals newval setter getter) 73 (get-setf-expansion place )73 (get-setf-expansion place env) 74 74 (let ((g (gensym))) 75 75 `(let* ((,g ,item) … … 79 79 80 80 ;; Adapted from SBCL. 81 (defmacro pushnew ( item place &rest keys)81 (defmacro pushnew (&environment env item place &rest keys) 82 82 (if (and (symbolp place) 83 (eq place (macroexpand place )))83 (eq place (macroexpand place env))) 84 84 `(setq ,place (adjoin ,item ,place ,@keys)) 85 85 (multiple-value-bind (dummies vals newval setter getter) 86 (get-setf-expansion place )86 (get-setf-expansion place env) 87 87 (let ((g (gensym))) 88 88 `(let* ((,g ,item) … … 92 92 93 93 ;; Adapted from SBCL. 94 (defmacro pop ( place)94 (defmacro pop (&environment env place) 95 95 (if (and (symbolp place) 96 (eq place (macroexpand place )))96 (eq place (macroexpand place env))) 97 97 `(prog1 (car ,place) 98 98 (setq ,place (cdr ,place))) 99 99 (multiple-value-bind (dummies vals newval setter getter) 100 (get-setf-expansion place )100 (get-setf-expansion place env) 101 101 (do* ((d dummies (cdr d)) 102 102 (v vals (cdr v))
Note: See TracChangeset
for help on using the changeset viewer.