(defun my-foreach (proc-list 'val-list)
(if (not (cdr var-list))
(proc-list (car val-list))
(progn
(proc-list (car val-list))
(my-foreach proc-list (cdr val-list)))))

(setq list-a '(1 2 3 4))
(1 2 3 4)

(my-foreach '(lambda (x) (print x)) 'list-a)

foreachのような関数をlispで作ろうと考えたのですが、どうもうまくいきません。
上記のようにするとlist-aがvoidだと怒られてしまいます。