Exercise 4.4.4: (back)

;; how-many : number number number -> number
;; Examples: (how-many 1 0 -1) -> 2
;; Examples: (how-many 2 4 2) -> 1
;; Examples: (how-many 3 2 1) -> 0
;; Examples: (how-many 0 1 2) -> "degenerate"
(define (how-many a b c)
  (cond
    [(= a 0) "degenerate"]
    [(> (square b) (* 4 a c)) 2]
    [(= (square b) (* 4 a c)) 1]
    [(< (square b) (* 4 a c)) 0]))

    
;; square : number -> number
(define (square x) (* x x))


;; Tests
> (= (how-many 1 0 -1) 2)
true

> (= (how-many 2 4 2) 1)
true

> (= (how-many 3 2 1) 0)
true