我想了解如何在函数中传递函数作为参数,但我在理解教程方面遇到了很多麻烦。 这里就是我想要做的事:方案中的简单高阶函数
(define (addone n)
(+ n 1))
(define (for-n start stop fn)
(if (< start stop)
(list)
(cons (fn start) (for-n (+ start 1) stop fn))))
基本上我只是想返回FN的值启动功能,启动+ 1,...起动+停机在列表中。
因此(for-n 1 5(addone 0))的预期输出将是(1 2 3 4 5)。 我想我在这里真的错过了一些非常基本的概念,因为我似乎甚至没有正确地调用解释器中的函数,而且我也没有掌握如何告诉方案将fn解释为函数而不是仅仅定期参数。
我想通了(虽然通过纯粹的试验和错误),我不知道我做了什么,但至少它的工作原理!
(define (function x)
x)
(define (for-n start stop fn)
(if (> start stop)
(list)
(cons (fn start) (for-n (+ start 1) stop fn)))))
你有只是问问题的问题并让他们不加讨论......受访者把他们的宝贵时间放在回答你的问题上,让他们像这样,毫不动摇或不被接受......这是否合理? – 0decimal0