如果我有一个程序清单。怎么能用foldr
next来电?Like (new abs) => (new (abs x)) 注意:foldr
应该返回一个过程。
我有
(define next
(lambda (ls)
(foldr (lambda (x) x) (lambda (x) x) ls)))
但这给出了一个错误......
如果我有一个程序清单。怎么能用foldr
next来电?Like (new abs) => (new (abs x)) 注意:foldr
应该返回一个过程。
我有
(define next
(lambda (ls)
(foldr (lambda (x) x) (lambda (x) x) ls)))
但这给出了一个错误......
传递给的第一个过程foldr
必须有两个参数,如下所示:
(define next
(lambda (ls)
(foldr (lambda (x a) <???>) ; It's not clear what do you want to do inside
(lambda (x) x) ; this is the identity function, what's it for?
ls)))
只是要清楚:
foldr
是要执行的过程,它接收两个参数:第一个是列表中的当前值,第二个是到目前为止的累积值foldr
是初始值,你在传递身份函数很可疑,我敢打赌这是不对的foldr
是要处理的列表foldr 的第二个参数应该是结果的初始值,通常是一个空列表。