(lambda (b) (let ((p (- 1 b))) (cons (lambda (x n) (let r ((x x)(n n)) (if (zero? n) x (if (< x p) (cons 0 (r (/ x p) (- n 1))) (cons 1 (r (/ (- x p) b) (- n 1))))))) (lambda (x) (let r ((x x)) (if (pair? x) (let ((d (car x))) (if (= d 0) (* (r (cdr x)) p) (if (= d 1) (+ p (* (r (cdr x)) b)) "crud"))) x)))))) ; test (define (t b x n) (let ((p ((fileVal "BiasBin") b))) (= ((cdr p) ((car p) x n)) x))) (t 1/3 1/2 30) ; => #t (t 2/5 11/7 11) ; => #t ((car ((fileVal "BiasBin") 1/3)) 1/2 30) ' => (0 1 0 0 0 1 0 1 0 0 1 0 1 1 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 . 660593/2097152)