(define-syntax cond-set!
  (syntax-rules ()
    ((_ pred var init)
     (if pred
         (set! var init)))
    ((_ pred var1 init1 var2 init2)
     (if pred
         (begin
           (set! var1 init1)
           (set! var2 init2))))
    ((_ pred var1 init1 var2 init2 ...)
     (let ((p pred))
       (if p
           (begin
             (cond-set! p var1 init1)
             (cond-set! p var2 init2 ...)))))))

(let ((test 5)
      (v1 0)
      (v2 0)
      (v3 0)
      (v4 0)
      (v5 0))
  (cond-set! (> test 4)
             v1 1 v2 2 v3 3 v4 4 v5 5)
  (for-each display (list v1 v2 v3 v4 v5)))