DrRacket:期望在左括号后有一个函数
DrRacket: expected a function after the open parenthesis
编译正确,但如果我尝试使用该函数,则会出现错误:
函数调用:在左括号后需要一个函数,但收到了 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)
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)))))
编译正确,但如果我尝试使用该函数,则会出现错误:
函数调用:在左括号后需要一个函数,但收到了 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)
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)))))