Exercise 3.3.1: (back)

;; Constants
(define CONV-INCH-CM 2.54)
(define CONV-FOOT-INCH 12)
(define CONV-YARD-FEET 3)
(define CONV-ROD-YARD 5.5)
(define CONV-FURLONG-ROD 40)
(define CONV-MILE-FURLONG 8)


;; inches->cm : number -> number
(define (inches->cm inches)
  (* inches CONV-INCH-CM))

;; feet->inches: number -> number
(define (feet->inches feet)
  (* feet CONV-FOOT-INCH))

;; yards->feet : number -> number
(define (yards->feet yards)
  (* yards CONV-YARD-FEET))

;; rods->yards : number -> number
(define (rods->yards rods)
  (* rods CONV-ROD-YARD))

;; furlongs->rods : number -> number
(define (furlongs->rods furlongs)
  (* furlongs CONV-FURLONG-ROD))

;; miles->furlongs : number -> number
(define (furlongs->rods miles)
  (* miles CONV-MILE-FURLONG))

;; feet->cm : number -> number
(define (feet->cm feet)
  (inches->cm 
   (feet->inches feet)))

;; yards->cm : number -> number
(define (yards->cm yards)
  (feet->cm
   (yards->feet yards)))

;; rods->inches : number -> number
(define (rods->inches rods)
  (feet->inches
   (yards-feet
    (rods->yards rods))))

;; miles->feet : number -> number
(define (miles->feet miles)
  (yards->feet
   (rods->yards
    (furlongs->rods
     (furlongs->rods miles)))))