diff --git a/A1/infix-ae.rkt b/A1/infix-ae.rkt index a87b172..9e173f8 100644 --- a/A1/infix-ae.rkt +++ b/A1/infix-ae.rkt @@ -40,7 +40,12 @@ [(Add l r) (+ (eval l) (eval r))] [(Sub l r) (- (eval l) (eval r))] [(Mul l r) (* (eval l) (eval r))] - [(Div l r) (/ (eval l) (eval r))])) + [(Div l r) (if(equal? 0 (eval r)) + (cond + [(< 0 (eval l)) +inf.0] + [(> 0 (eval l)) -inf.0] + [else +nan.0]) + (/ (eval l) (eval r)))])) ;; evaluate an AE program contained in an s-expr (define (run sx)