编写将过程应用于系列的闭包
writing a closure that applies an procedure to a series
我正在尝试编写一个 returns 闭包的过程。我希望能够对我的系列应用任何程序。
这是我目前所拥有的,但对我不起作用。
(define (forAll n m)
(lambda (op start)
(op (op n start) (+ n 1) m)))
我希望能够进行这些操作:
(define my_iterator (forAll 1 5))
(my_iterator + 0) → 15
(my_iterator * 1) → 120
(my_iterator (lambda (x y) (display x)(display " ")) "") → 1 2 3 4 5
您需要为本地过程命名,以便您可以对它进行递归,并且它需要比您的合同有更多的参数,因为您需要为每次迭代传递状态。以下是您大致需要实现的框架:
(define (for-all from to)
(define (helper op start from)
(if stop-condition-expression
start
(helper op new-start-expression new-from-expression)))
(lambda (op start)
(helper op start from)))
我正在尝试编写一个 returns 闭包的过程。我希望能够对我的系列应用任何程序。 这是我目前所拥有的,但对我不起作用。
(define (forAll n m)
(lambda (op start)
(op (op n start) (+ n 1) m)))
我希望能够进行这些操作:
(define my_iterator (forAll 1 5))
(my_iterator + 0) → 15
(my_iterator * 1) → 120
(my_iterator (lambda (x y) (display x)(display " ")) "") → 1 2 3 4 5
您需要为本地过程命名,以便您可以对它进行递归,并且它需要比您的合同有更多的参数,因为您需要为每次迭代传递状态。以下是您大致需要实现的框架:
(define (for-all from to)
(define (helper op start from)
(if stop-condition-expression
start
(helper op new-start-expression new-from-expression)))
(lambda (op start)
(helper op start from)))