; division by repeated subtraction (define (divide n d) (if (< n d) 0 (+ (divide (- n d) d) 1))) (display (divide 29 4)) (newline) (define (divide n d) (define (divide-helper q r) (if (< r d) (values q r) (divide-helper (+ q 1) (- r d)))) (divide-helper 0 n)) (call-with-values (lambda () (divide 29 4)) (lambda (q r) (display q) (newline) (display r) (newline)))