2015-02-09 48 views
-1

我想在計劃中編寫一個程序,反轉給定的數字。然而,問題是,儘管我已經獲得了遞歸權,但Scheme還是說我的遞歸調用的參數數量不正確。錯誤數量的參數,同時扭轉數字在方案

這段代碼有什麼問題?爲什麼我會得到錯誤觀點的錯誤?

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

回答

2

你有幾個錯誤的括號,基本情況是錯誤的(你必須返回累加器)。試試這個:

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

請記住,在方案括號平均「功能的應用程序,如果你周圍有()一些解釋器將嘗試運用裏面有什麼作爲一個功能非常,非常小心,你把那些()

+0

我的代碼有什麼問題? – 2015-02-09 14:41:13

+0

此外,它不工作,我得到的輸出僅爲1 – 2015-02-09 14:42:39

+0

我的基本情況是否有錯? – 2015-02-09 14:43:32