(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 (= side1 side2) (= side2 side3)) 'equilateral) ((or (= side1 side2) (= side2 side3) (= side3 side1)) 'isoceles) (else 'scalene))))