如果我有一份程序清单。 foldr
怎样才能用来接听电话?
喜欢(新abs)=> (新(abs x))
注意:foldr
应该返回一个过程。
我有
(define next
(lambda (ls)
(foldr (lambda (x) x) (lambda (x) x) ls)))
但这是错误的......
答案 0 :(得分:0)
传递给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
的第三个参数是要处理的列表答案 1 :(得分:0)
第二个arg to foldr应该是结果的初始值,通常是一个空列表。