编写一个带有两个参数的forAll过程:一个系列的起始值和结束值,并将给定的过程应用于该系列

时间:2017-11-04 03:36:16

标签: scheme racket r5rs

我正在尝试编写一个带有两个参数的forAll过程:一个系列的开始值和结束值。结果闭包还需要两个参数:一个应用于系列中所有元素的操作,以及一个初始值。

这就是我所拥有的,我似乎错过了一些东西,或者我不理解闭包背后的概念。

(define (forAll n m)
   (if (>= n m) '()
   (forAll (+ n 1) m))

 (lambda (op start) (op start n m))
       )

1 个答案:

答案 0 :(得分:0)

这看起来像是“将现有功能合并为新功能”练习 首先编写一个生成数字列表的函数,如果你还没有这样做的话 用它来实现这个功能 回顾一下你最近学到的东西,看看你是否已经有一个类似于闭包应该做的功能。

你最终会看起来像这样:

(define (forAll n m)
    (lambda (op start)
        (... code that builds a list and computes the result ...)))