if else construction

if-statement, scheme

Solution

There are several errors in your code. And you should use a `cond` when dealing with multiple conditions (think of it as a series of IF/ELSE IF/.../ELSE statements).

Be aware that the expression `(and (> x 1) (= x 1))` will never be true, as `x` is either greater than or equal to `1`, both conditions can never be true at the same time. You probably meant `(or (> x 1) (= x 1))`, but even so that expression can be written more concisely as `(>= x 1)`. The same considerations apply for the condition `(and (< x 2) (= x 2))`.

I believe this is what you were aiming for:

(define (equation x)
  (cond ((> x 2)
         (+ (- (* x x) x) 4))
        ((and (>= x 1) (<= x 2))
         (/ 1 x))
        (else 0)))

Problem

I am trying to solve a basic function. but I get an error with my second if statement and the else.Ff you can give me a help here is the code. ``` (define (equation x) (if(> x 2) (+(-(* x x) x) 4) ) (if (and (> x 1 ) (= x 1)) (and (< x 2) (= x 2)) (/ 1 x)) (else 0) ) ```

Original source