Function: math-handle-foreach

math-handle-foreach is an autoloaded and byte-compiled function defined in calc-prog.el.gz.

Signature

(math-handle-foreach HEAD BODY)

Source Code

;; Defined in /usr/src/emacs/lisp/calc/calc-prog.el.gz
;; (put 'math-foreach 'lisp-indent-hook 1)

(defun math-handle-foreach (head body)
  (let ((var (nth 0 (car head)))
        (loop-var (gensym "foreach"))
	(data (nth 1 (car head)))
	(body (if (cdr head)
		  (list (math-handle-foreach (cdr head) body))
		body)))
    `(let ((,loop-var ,data))
       (while ,loop-var
         (let ((,var (car ,loop-var)))
           ,@(append body
                     `((setq ,loop-var (cdr ,loop-var)))))))))