33 lines
531 B
Common Lisp
33 lines
531 B
Common Lisp
;; vi:ft=lisp:sw=2:ts=2
|
|
|
|
;; loop, broken by (return)
|
|
(setq looped-loop (let (i 0)
|
|
(loop
|
|
(if (< i 10)
|
|
(setq i (+ i 1))
|
|
(return)
|
|
)
|
|
)
|
|
i
|
|
))
|
|
|
|
;; while, broken prematurely
|
|
(setq looped-while (let (i 0)
|
|
(while (< i 20)
|
|
(setq i (+ i 1))
|
|
(if (= i 10) (return))
|
|
)
|
|
i
|
|
))
|
|
|
|
;; while, broken by condition
|
|
(setq looped-while-full (let (i 0)
|
|
(while (< i 10)
|
|
(setq i (+ i 1))
|
|
)
|
|
i
|
|
))
|
|
|
|
;; All loops execute the same count of times
|
|
(assert (= looped-loop looped-while looped-while-full))
|