(define classify-triangle
  (lambda (side1 side2 side3)
    (cond
      ((or (<= side1 0) (<= side2 0) (<= side3 0))
       (error "classify-triangle: sides must have positive length"))
      ((or (<= (+ side1 side2) side3) 
           (<= (+ side2 side3) side1)
           (<= (+ side3 side1) side2))
       (error "classify-triangle: sides do not describe a triangle"))
      ((and (eq? side1 side2) (eq? side2 side3)) 'equilateral)
      ((eq? side1 side2) 'isoceles)
      (else 'scalene))))

