我解决了使用map
和accumulate
时遇到的问题,但它给了我这个错误:"accumulate: undefined;" cannot reference undefined identifier.
这是我的代码:
;Procedure to test it with
(define (double x)
(* 2 x))
(define (my-map proc sequence)
(accumulate (lambda (x y) (cons (proc x) y)) '() sequence))
请有人告诉我如何解决这个问题吗?
答案 0 :(得分:4)
在R5RS中未定义过程accumulate
。但是很容易定义自己的:
(define (accumulate proc init lst)
(if (null? lst)
init
(proc (car lst)
(accumulate proc init (cdr lst)))))
为了将来参考,accumulate
在其他编程语言中也称为foldr
,fold-right
,inject
或reduce
,请咨询您的口译员{{3更多细节。