(plan 4) (defun nop () nil) (expect "do - simple example" (equal (do ((n 1)) (t n)) 1)) (defun range (start end) (do ((i (- end 1) (- i 1)) (lst (list) (cons i lst))) ((< i start) lst))) (expect "do - range function" (equal (let ((lst (range 1 4))) (comment lst) lst) (list 1 2 3))) (expect "do - has implicit block nil" (equal 'ok (block nil (do () (t) (return 'fail)) 'ok))) (expect "do - implicit tagbody" (equal 'ok (catch 'test (do ((n 0 (+ 1 n))) ((> n 0)) (nop) (nop) (go end) middle (throw 'test 'fail) end) 'ok)))