(define-macro (choose prob a . args) (if (null? args) `(if (< (random) ,prob) ,a) `(if (< (random) ,prob) ,a ,(car args))))