2
;;;; Author: Paul Dietz
3
;;;; Created: Sun Nov 17 12:37:45 2002
4
;;;; Contains: Tests of DO, DOING, RETURN in LOOP. Tests of NAMED loops
13
(loop doing (return 10))
17
(loop for i from 0 below 100 by 7
18
when (> i 50) return i)
25
(when (= x 10) (return x))))
33
(loop return (values)))
36
(loop return (values 1 2))
40
(let* ((limit (min 1000 (1- (min call-arguments-limit
41
multiple-values-limit))))
42
(vals (make-list limit :initial-element :a))
43
(vals2 (multiple-value-list (eval `(loop return (values ,@vals))))))
48
(loop named foo return 'a)
53
(return (loop named foo return :good))
59
(loop named foo do (return :good))
64
(loop named foo with a = (return-from foo :good) return :bad)
70
and a = (return-from foo :good) return :bad)
75
for a = (return-from foo :good) return :bad)
79
(loop named foo for a in (return-from foo :good))
83
(loop named foo for a from (return-from foo :good) return :bad)
87
(loop named foo for a on (return-from foo :good) return :bad)
91
(loop named foo for a across (return-from foo :good) return :bad)
95
(loop named foo for a being the hash-keys of (return-from foo :good)
100
(loop named foo for a being the symbols of (return-from foo :good)
105
(loop named foo repeat (return-from foo :good) return :bad)
109
(loop named foo for i from 0 to (return-from foo :good) return :bad)
113
(loop named foo for i from 0 to 10 by (return-from foo :good) return :bad)
117
(loop named foo for i from 10 downto (return-from foo :good) return :bad)
121
(loop named foo for i from 10 above (return-from foo :good) return :bad)
125
(loop named foo for i from 10 below (return-from foo :good) return :bad)
129
(loop named foo for i in '(a b c) by (return-from foo :good) return :bad)
133
(loop named foo for i on '(a b c) by (return-from foo :good) return :bad)
137
(loop named foo for i = 1 then (return-from foo :good))
141
(loop named foo for x in '(a b c) collect (return-from foo :good))
145
(loop named foo for x in '(a b c) append (return-from foo :good))
149
(loop named foo for x in '(a b c) nconc (return-from foo :good))
153
(loop named foo for x in '(a b c) count (return-from foo :good))
157
(loop named foo for x in '(a b c) sum (return-from foo :good))
161
(loop named foo for x in '(a b c) maximize (return-from foo :good))
165
(loop named foo for x in '(a b c) minimize (return-from foo :good))
169
(loop named foo for x in '(a b c) thereis (return-from foo :good))
173
(loop named foo for x in '(a b c) always (return-from foo :good))
177
(loop named foo for x in '(a b c) never (return-from foo :good))
181
(loop named foo for x in '(a b c) until (return-from foo :good))
185
(loop named foo for x in '(a b c) while (return-from foo :good))
189
(loop named foo for x in '(a b c) when (return-from foo :good) return :bad)
193
(loop named foo for x in '(a b c) unless (return-from foo :good) return :bad)
197
(loop named foo for x in '(a b c) if (return-from foo :good) return :bad)
201
(loop named foo for x in '(a b c) return (return-from foo :good))
205
(loop named foo initially (return-from foo :good) return :bad)
209
(loop named foo do (loop-finish) finally (return-from foo :good))
215
(loop named foo with a = (return :good) return :bad)
223
and a = (return :good) return :bad)
230
for a = (return :good) return :bad)
236
(loop named foo for a in (return :good))
242
(loop named foo for a from (return :good) return :bad)
248
(loop named foo for a on (return :good) return :bad)
254
(loop named foo for a across (return :good) return :bad)
260
(loop named foo for a being the hash-keys of (return :good)
267
(loop named foo for a being the symbols of (return :good)
274
(loop named foo repeat (return :good) return :bad)
280
(loop named foo for i from 0 to (return :good) return :bad)
286
(loop named foo for i from 0 to 10 by (return :good) return :bad)
292
(loop named foo for i from 10 downto (return :good) return :bad)
298
(loop named foo for i from 10 above (return :good) return :bad)
304
(loop named foo for i from 10 below (return :good) return :bad)
310
(loop named foo for i in '(a b c) by (return :good) return :bad)
316
(loop named foo for i on '(a b c) by (return :good) return :bad)
322
(loop named foo for i = 1 then (return :good))
328
(loop named foo for x in '(a b c) collect (return :good))
334
(loop named foo for x in '(a b c) append (return :good))
340
(loop named foo for x in '(a b c) nconc (return :good))
346
(loop named foo for x in '(a b c) count (return :good))
352
(loop named foo for x in '(a b c) sum (return :good))
358
(loop named foo for x in '(a b c) maximize (return :good))
364
(loop named foo for x in '(a b c) minimize (return :good))
370
(loop named foo for x in '(a b c) thereis (return :good))
376
(loop named foo for x in '(a b c) always (return :good))
382
(loop named foo for x in '(a b c) never (return :good))
388
(loop named foo for x in '(a b c) until (return :good))
394
(loop named foo for x in '(a b c) while (return :good))
400
(loop named foo for x in '(a b c) when (return :good) return :bad)
406
(loop named foo for x in '(a b c) unless (return :good) return :bad)
412
(loop named foo for x in '(a b c) if (return :good) return :bad)
418
(loop named foo for x in '(a b c) return (return :good))
424
(loop named foo initially (return :good) return :bad)
430
(loop named foo do (loop-finish) finally (return :good))