使用Racket的两个数字的GCD

时间:2018-02-28 11:39:28

标签: racket

当我使用racket定义一个找到两个整数的gcd的函数时,

(define (gcd a b)
    (cond
         [(> a b) (gcd b a-b)]
         [(< a b) (gcd a b-a)]
         [else a]))

但是,

  

a-b:模块中的未绑定标识符:a-b

我不知道该怎么办。 为什么会这样?

1 个答案:

答案 0 :(得分:1)

由于Racket无法识别中缀操作,因此将操作更改为前缀表达式可以很好地进行:)

(define (gcd a b)
    (cond
         [(> a b) (gcd b (- a b))]
         [(< a b) (gcd a (- b a))]
         [else a]))