(lambda (seed) (let ((coin ((fileVal "Coin") seed))) (lambda (p) (let J ((p p)) (let ((t (coin))(p (+ p p))) (if (> p 1) (or t (J (- p 1))) (and t (J p)))))))) ; tests (let ((ac ((fileVal "bCoin") "Floss"))(b 0.1)(t 0)(n 1000000)) (((fileVal "Do") 'Do) n (lambda (_) (if (ac b) (set! t (+ t 1))))) (cons t (* b n))) ; => (99876 . 100000.0) (let ((ac ((fileVal "bCoin") "Flsr"))) (let q ((n 1000000) (s 0)) (if (= n 0) s (q (- n 1) (if (ac 0.3) (+ s 1) s))))) ; => 300078 (let ((ac ((fileVal "bCoin") "Flsr")) (sz 1000000)) (let q ((n sz) (s 0) (t 0)) (if (= n 0) (cons s t) (if (ac (/ n sz)) (q (- n 1) (+ s 1) (+ t n)) (q (- n 1) s t))))) ; => (500379 . 333650452387) (let ((ac ((fileVal "bCoin") "Flyr")) (sz 1000000) (p 3/11)) (let q ((s 0)(n sz)) (if (= n 0) (list sz (+ (/ s sz) 0.0) (+ 0.0 p)) (q (if (ac p) (+ s 1) s) (- n 1))))) ; => (1000000 0.272486 0.2727272727272727)