gpt4 book ai didi

scheme - 从函数返回函数的目的是什么?

转载 作者:行者123 更新时间:2023-12-04 22:34:18 24 4
gpt4 key购买 nike

我正在研究 SICP,我并没有完全理解函数返回背后的想法。

(define (deriv g)
(lambda (x)
(/ (- (g (+ x dx)) (g x))
dx)))

上面的代码将用作((deriv square) 10),为什么我们不能把这段代码简单一点呢?通过1步评估结果?

(define (deriv g x)
(/ (- (g (+ x dx)) (g x))
dx))

为什么我们真的需要函数作为返回值?抽象?部分申请?我想有一个更简单、更清晰的想法,我们需要它做什么,以及在哪里使用它。谢谢!

最佳答案

嗯,在这种情况下,因为在数学上函数的导数是函数。因此,如果您想要一个计算函数导数的函数,那么它将返回一个函数。

这很有用。想象一下,如果您有一个名为 fplot 的函数,它将绘制两个值之间的函数。然后我可以用

绘制函数 sin
(fplot sin (- pi) pi)

说。现在,如果我想绘制 sin 的导数(假设我不知道它是 cos),我可以绘制:

(fplot (deriv sin) (- pi) pi)

fplot 根本不需要知道它绘制的函数的来源。另一种方法是写一个特殊的函数来绘制一个函数的导数,然后可能是另一个函数来绘制二阶导数等等,最后是一些函数,它接受一个函数和一个整数并绘制导数的顺序它或其他东西。

然后你会意识到,好吧,如果设计一个函数来绘制函数,另一个函数来计算作为函数的导数的函数,那么这不是更好的设计吗?事情会很好地组合在一起。

关于scheme - 从函数返回函数的目的是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66587730/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com