我必须使用DrRacket来解决这个问题,但每次运行代码时,都会收到此错误消息“gcd:此名称之前已定义且无法重新定义”。 (我也选择DrRacket中的高级学生[自定义]语言。 下面是我的代码,它是一个递归函数,用于找到最大公约数:
(define (gcd n m)
(cond [(= m 0) n]
[else (gcd m (modulo n m))]))
(check-expect (gcd 0) 0)
(check-expect (gcd 12 8) 4)
(check-expect (gcd 6 12 8) 2)
答案 0 :(得分:2)
gcd
功能已作为高级学生语言as you can see in the documentation here的一部分提供。与完整的Racket语言不同,教学语言不允许定义与库函数同名的函数。请注意,如果删除gcd
的定义,则所有测试都会通过。
如果这是家庭作业,那么您可能需要将gcd
功能命名为其他功能。如果作业要求您的函数名为gcd
,那么作业可能存在问题。