;;ax^2 + bx + c
(define quadratic
  (lambda (a b c x)
    (+ (* a x x) (* b x) c)))

;; (-b +/- sqrt(b^2 - 4ac) ) / 2a
(define quadratic-formula
  (lambda (a b c)
    (list (/ (+ (- b) (sqrt (- (* b b) (* 4 a c))))
	     (* 2 a))
	  (/ (- (- b) (sqrt (- (* b b) (* 4 a c))))
	     (* 2 a)))))

(define discriminant
  (lambda (a b c)
    (sqrt (- (* b b) (* 4 a c)))))

(define helper
  (lambda (a b c d)
    (list (/ (+ (- b) d)
	     (* 2 a))
	  (/ (- (- b) d)
	     (* 2 a)))))

(define quadratic-formula2
  (lambda (a b c)
    (helper a b c (discriminant a b c))))

(define quadratic-formula3
  (lambda (a b c)
    ((lambda (d)
       (list (/ (+ (- b) d)
		(* 2 a))
	     (/ (- (- b) d)
		(* 2 a))))
     (discriminant a b c))))