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

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

问题描述:

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

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

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

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

这看起来像一个“结合现有的功能到新的”演习。
从编写一个函数开始,该函数可以生成数字列表,如果您还没有这样做。
使用它来做这个功能。
回顾你最近学到了什么,看看你是否已经有了一个类似于闭包应该做的事情的函数。

你到底是什么了可能会是这样的:

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

这并不能真正帮助或解释什么 –