Scheme 在方案中反转数字时参数数目错误

Scheme 在方案中反转数字时参数数目错误,scheme,lisp,Scheme,Lisp,我正试图在Scheme中编写一个程序来反转给定的数字。然而,问题是,尽管我已经正确地实现了递归,但Scheme表示递归调用的参数数量不正确 这个代码有什么问题?为什么我会得到错误论点的错误 (define (rev revs n) (cond ( (= n 0) 1) (else ( (rev ( ( + (* revs 10) (remainder n 10) ) (quotient n 10) ) ) ) )))

我正试图在Scheme中编写一个程序来反转给定的数字。然而,问题是,尽管我已经正确地实现了递归,但Scheme表示递归调用的参数数量不正确

这个代码有什么问题?为什么我会得到错误论点的错误

(define (rev revs n)
    (cond ( (= n 0) 1)
        (else ( 
            (rev ( ( + (* revs 10) (remainder n 10) ) (quotient n 10) ) ) 
            ) )))

您有几个错误的括号,基本情况是错误的(您必须返回累加器)。试试这个:

(define (rev revs n)
  (cond ((= n 0) revs)
        (else 
         (rev (+ (* revs 10) (remainder n 10)) (quotient n 10)))))

记住,在Scheme中,括号的意思是“函数应用,如果你用
()
包围某个东西,解释器会尝试将里面的东西作为函数应用。在你把
()

同样,它也不起作用。我只得到1的输出。那么,算法有问题。问题是语法错误。你用什么参数调用函数?啊!对不起。我的基本情况是错误的。我必须输出
revs