aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman2000-01-21 03:37:07 +0000
committerRichard M. Stallman2000-01-21 03:37:07 +0000
commit04be976f6786cdf36827a10a9ca0883124ddbeec (patch)
tree3645eac63d799b0c6421e0d344f95a6090fe8349
parent5bb6f079e54ceeec1794a287f793e6b47f3575f1 (diff)
downloademacs-04be976f6786cdf36827a10a9ca0883124ddbeec.tar.gz
emacs-04be976f6786cdf36827a10a9ca0883124ddbeec.zip
Undo previous change.
-rw-r--r--lisp/emacs-lisp/cl-macs.el26
1 files changed, 26 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index 70069d77eaf..af2d31cf216 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -1122,6 +1122,32 @@ Format is: (do* ((VAR INIT [STEP])...) (END-TEST [RESULT...]) BODY...)"
1122 (apply 'append sets))))))) 1122 (apply 'append sets)))))))
1123 (or (cdr endtest) '(nil))))) 1123 (or (cdr endtest) '(nil)))))
1124 1124
1125(defmacro dolist (spec &rest body)
1126 "(dolist (VAR LIST [RESULT]) BODY...): loop over a list.
1127Evaluate BODY with VAR bound to each `car' from LIST, in turn.
1128Then evaluate RESULT to get return value, default nil."
1129 (let ((temp (gensym "--dolist-temp--")))
1130 (list 'block nil
1131 (list* 'let (list (list temp (nth 1 spec)) (car spec))
1132 (list* 'while temp (list 'setq (car spec) (list 'car temp))
1133 (append body (list (list 'setq temp
1134 (list 'cdr temp)))))
1135 (if (cdr (cdr spec))
1136 (cons (list 'setq (car spec) nil) (cdr (cdr spec)))
1137 '(nil))))))
1138
1139(defmacro dotimes (spec &rest body)
1140 "(dotimes (VAR COUNT [RESULT]) BODY...): loop a certain number of times.
1141Evaluate BODY with VAR bound to successive integers from 0, inclusive,
1142to COUNT, exclusive. Then evaluate RESULT to get return value, default
1143nil."
1144 (let ((temp (gensym "--dotimes-temp--")))
1145 (list 'block nil
1146 (list* 'let (list (list temp (nth 1 spec)) (list (car spec) 0))
1147 (list* 'while (list '< (car spec) temp)
1148 (append body (list (list 'incf (car spec)))))
1149 (or (cdr (cdr spec)) '(nil))))))
1150
1125(defmacro do-symbols (spec &rest body) 1151(defmacro do-symbols (spec &rest body)
1126 "(dosymbols (VAR [OBARRAY [RESULT]]) BODY...): loop over all symbols. 1152 "(dosymbols (VAR [OBARRAY [RESULT]]) BODY...): loop over all symbols.
1127Evaluate BODY with VAR bound to each interned symbol, or to each symbol 1153Evaluate BODY with VAR bound to each interned symbol, or to each symbol