DrRacket:应为开括号后的函数
它编译正确,但如果我尝试使用该函数,则会出现错误: 函数调用:应为开括号后的函数,但收到1DrRacket:应为开括号后的函数,racket,Racket,它编译正确,但如果我尝试使用该函数,则会出现错误: 函数调用:应为开括号后的函数,但收到1 (define (euclid a b) (if (= b 0) a (if (= a 0) b (if (> a b) (euclid(- a b) b) (euclid (a (- b a) )))))) 最后一行的括号放错了地方。这应该可以解决这个问题: (define (euclid a b) (if (= b 0)
(define (euclid a b)
(if (= b 0) a
(if (= a 0) b
(if (> a b) (euclid(- a b) b)
(euclid (a (- b a) ))))))
最后一行的括号放错了地方。这应该可以解决这个问题:
(define (euclid a b)
(if (= b 0)
a
(if (= a 0)
b
(if (> a b)
(euclid (- a b) b)
(euclid a (- b a))))))
当您有多个嵌套条件时,最好使用cond
,如下所示:
(define (euclid a b)
(cond ((= b 0) a)
((= a 0) b)
((> a b) (euclid (- a b) b))
(else (euclid a (- b a)))))