Exercise 5.1.4: (back)

;; what-kind : number number number -> symbol
;; Examples: (what-kind 1 0 -1) -> 'two
;; Examples: (what-kind 2 4 2) -> 'one
;; Examples: (what-kind 3 2 1) -> 'none
;; Examples: (what-kind 0 1 2) -> 'degenerate
(define (what-kind a b c)
  (cond
    [(= a 0) 'degenerate]
    [(> (square b) (* 4 a c)) 'two]
    [(= (square b) (* 4 a c)) 'one]
    [(< (square b) (* 4 a c)) 'none]))

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


;; Tests
> (what-kind 1 2 3)
'none

> (symbol=? (what-kind 1 2 3) 'none)
true


> (what-kind 2 4 2)
'one

> (symbol=? (what-kind 2 4 2) 'one)
true


> (what-kind 1 0 -1)
'two

> (symbol=? (what-kind 1 0 -1) 'two)
true


> (what-kind 0 1 2)
'degenerate

> (symbol=? (what-kind 0 1 2) 'degenerate)
true