2011-09-24 52 views
0

對於Scheme而言,嘗試使函數爲(在f x中),u是整數,x是列表和f二元函數。方案表達式(in + 3'(1 2 3))應該返回3 + 1 + 2 + 3 = 9。總和數u和列表x u + x1 + x2的方案函數

我有這個,但如果我這樣做(在+ 3'(1 2))它返回3而不是6.我做錯了什麼?

(define (in f u x) 
    (define (h x u) 
    (if (null? x) 
     u 
     (h (cdr x) (f u (car x))))) 
    (h x 0)) 
+0

我建議評論你的代碼。然後,將評論與代碼的實際功能進行比較可以很容易地發現問題出在哪裏。 – Gabe

回答

3

從我瞭解的你的in功能是應該做的,你可以將其定義是這樣的:

(define in fold) ; after loading SRFI 1 

:-P

(更嚴重的是,你可以看看my implementation of fold的一些想法,但你應該提交你自己的作業版本。)

+0

Thanku,我不會複製粘貼你的解決方案,而不是我所做的,只是想看看是否有人可以給我提示或給我如何解決這個問題的想法。你做了謝謝。 – krunarsson