(define (next-child nr-daughters)   (cond    ((= nr-daughters 4) 'only-daughters)    ((eq? 'no-child      (choose '((child . 4/5) (no-child . 1/5))))     (if (= nr-daughters 0)         'no-children         'only-daughters))    (#t     (let ((gender (choose '((male . 1/2) (female . 1/2)))))       (if (eq? gender 'male)           nr-daughters           (next-child (+ 1 nr-daughters))))))) (print (probabilities (next-child 0))) ;; Result: ;; ((no-children . 1/5) ;;  (only-daughters . 94/625) ;;  (3 . 16/625) ;;  (2 . 8/125) ;;  (1 . 4/25) ;;  (0 . 2/5))