> I think you'll find it easier to reason first about an f
> which takes as many args as your conditionals produce, so
> you won't be struggling to splice your "bunch of values"
> into a bigger argument list.

yes, thank you tomas,
i stopped trying to return multiples values, and instead call the
functions with the right numbers of args, and using the cond statement
to change the values of args.

(define (f a b c d)
  (+ a b c d))

(let ((a 1)
      (b #f)
      (c #f)
      (d 10))
  (cond (#t (set! b 2)
            (set! c 3))
        (else
         (set! b 6)
         (set! c 10)))
  (f a b c d))

Reply via email to