(setq SCCS-ucido "@(#)ucido.l 1.3 6/29/81")
; ucilisp do loop, this is a seperate file due to conflicts with
; the franz lisp do function. To use this, one needs
; to load this file in at run time. (And have calls to
; do be close compiled in compiled code).
; NOTE: do is a macro and must be declared before calls to it
; in code to be compiled!
; to compile this file: liszt ucido.l
(cond ((eq dotype 'while)
(dowhile (car alist) (cdr alist)))
(dowhile (list 'not (car alist))
(defun dowhile (expr alist)
(setq returnvar ((lambda ()
(t (return returnvar)))))
(defun dofor (var fortype varlist stmlist)
(in `(prog (returnvar l1 l2)
(on `(prog (returnvar l1 l2)
(rpt `(prog (returnvar ,var)
(cond ((not (> ,var ,varlist))
(setq returnvar ((lambda ()
(t (return returnvar)))))