If statement 若非如此建设

If statement 若非如此建设,if-statement,scheme,If Statement,Scheme,我试图解一个基本函数。但是我的第二个if语句和else.Ff出现了一个错误,你可以给我一个帮助,这是代码 (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) ) (定义(方程式x) (如果(>x2)(+(((*x)x)4)) (如果(和(>x1)(=x1))(和(x1)(=

我试图解一个基本函数。但是我的第二个if语句和else.Ff出现了一个错误,你可以给我一个帮助,这是代码

(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)
  )
(定义(方程式x)
(如果(>x2)(+(((*x)x)4))
(如果(和(>x1)(=x1))(和(
和(>x1)(=x1)总是错误的


如果代码中存在多个错误,则没有操作员将工作与第二个连接。在处理多个条件时,应该使用
cond
(将其视为一系列IF/ELSE IF/../ELSE语句)

请注意表达式
(和(>x1)(=x1))
永远不会为真,因为
x
大于或等于
1
,这两个条件永远不会同时为真。您的意思可能是
(或(>x1)(=x1))
,但即使如此,表达式也可以更简洁地写成
(>=x1)
。同样的注意事项也适用于条件
(和(

我相信这就是你的目标:

(define (equation x)
  (cond ((> x 2)
         (+ (- (* x x) x) 4))
        ((and (>= x 1) (<= x 2))
         (/ 1 x))
        (else 0)))
(定义(方程式x)
(秒(>x2)
(+(((*x)x)4))

((和(>=x1)(if条件的格式是
(if(condition)(restinent)(alternate))
else
不能与
if
一起使用。这里的代码没有使用cond/else

(define (equation x)
  (if (> x 2) 
      (+ (- (* x x) x) 4)
      (if (and (or (> x 1) (= x 1)) (or (< x 2) (= x 2)))
          (/ 1 x)
          0)))
(定义(方程式x)
(如果(>x2)
(+((*x)x)4)
(如果(和(或(>x1)(=x1))(或(
或者

(define (equation2 x)
  (if (< x 1) 
      0
      (if (> x 2)
          (+ (- (* x x) x) 4)
          (/ 1 x)))) 
(定义(等式2 x)
(如果(x2)
(+((*x)x)4)
(/1 x)))

我不知道scheme,但你是说
还是
s而不是
s?不,因为这两个条件都必须是真的,我想现在它只检查第二个ifx的第一部分,不能大于等于1,而是大于等于1。所以如果我想要1,我不知道sheme,但我认为它类似于前缀n和(>x0)(