我一直在打一个电话来积累,内容如下:
(define (accumulate op initial sequence)
(if (null? sequence)
initial
(op (car sequence)
(accumulate op initial (cdr sequence)))))
但是,当我尝试通过过滤器选择某些东西来解决问题时,答案不起作用。我到目前为止是这样的:
(define (f2b items)
(accumulate (lambda (x y)
(cons (append
(map square (filter negative? (filter number? x))) x) y)) () items)
)
我给出的输入是:
(f2a '(("sdas" 89) (-53 "sad")))
我得到的输出是:
((sdas 89) (2809 -53 sad))
我似乎无法让负数消失。