if lambda were applicable, this would work in both cases:

(define-macro (progv vars vals . body)
  `(apply (apply lambda ,vars ',body) ,vals))

> (let ((s '(one two)) (v '(1 2))) (progv s v (+ one two)))
3
> (progv '(one two) '(1 2) (+ one two))
3

(running a mystery scheme...)


Reply via email to