编写一个包含两个参数的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 ...)))
这并不能真正帮助或解释什么 –