我想實現一個斐波那契數列與嵌套拉姆達 -
(((lambda (x) (x x)) ;; evaluate x on x
((lambda (fibo-gen)) ;; fibo-gen get another func as arg
(lambda (N it second first)
(cond ;; here the body of the above func ..
((= N 1) 1)
((= N 1) 1)
((= N it) (+ second first))
(else (fibo-gen (+ it 1) (+ second first) (second)))
)
)
)
)
5 1 1 1)
它會提示r5rs:body: no expression in body in: (r5rs:body)
通過我的考試每個功能都有一個「體」在這裏,所以我做錯了什麼?
注意,我想在這裏做的實現是避免重新計算之前的系列迭代器模式..
編輯:
在其他的方式也可以工作 -
(((lambda (x) (x x)) ;; evaluate x on x
(lambda (fibo-gen) ;; fibo-gen body use another lambda ..
(lambda (N it second first)
(cond ;; here the body of the above func ..
((= N 1) 1)
((= N 2) 1)
((= N it) second)
(else ((fibo-gen fibo-gen) N (+ it 1) (+ second first) second))
)
)
)
)
5 1 1 1)
=> 8
'lamba'可能沒有幫助。 – 2013-02-24 23:18:25
這只是錯字..還是一樣的錯誤 – URL87 2013-02-24 23:22:44