Module 2 Extra Materials

dist-to-origin Example

;; (sum-of-squares p1 p2) produces sum of squares of p1 and p2.
;; sum-of-squares: Num Num -> Num
;; Examples:
(check-expect (sum-of-squares 3 4) 25)
(check-expect (sum-of-squares 0 2.5) 6.25)

(define (sum-of-squares p1 p2)
  (+ (* p1 p1) (* p2 p2)))

;; Tests:
(check-expect (sum-of-squares -1 -2) 5)
(check-expect (sum-of-squares 0 0) 0)
(check-expect (sum-of-squares -10 2.5) 106.25)


;; (dist-to-origin x y) produces the distance between
;; the point (x,y) to the origin in the Cartesian coor-
;; dinate system.
;; dist-to-origin: Num Num -> Num
;; Examples:
(check-expect (dist-to-origin 3 -4) 5)
(check-expect (dist-to-origin 0 0) 0)

;; DO NOT DO THIS!!! (either directly or indirectly)
;; (check-expect (dist-to-origin 1 2) (dist-to-origin 1 2))

(define (dist-to-origin x y)
  (sqrt (sum-of-squares x y)))

;; If the produced result is an inexact number you should use check-within
(check-within (dist-to-origin 1 1) 1.41421 0.00001)
(check-expect (dist-to-origin 0 2) 2)
(check-expect (dist-to-origin -4 0) 4)
(check-expect (dist-to-origin 0 -5) 5)
(check-expect (dist-to-origin 3 0) 3)
(check-expect (dist-to-origin 5 -12) 13)
(check-expect (dist-to-origin -8 -5) 17)
(check-expect (dist-to-origin -7 24) 25)