gpt4 book ai didi

方案分配

转载 作者:行者123 更新时间:2023-12-05 00:00:35 25 4
gpt4 key购买 nike

当我每次得到值 10 时评估以下表达式。

(((lambda (x) (lambda () (set! x (+ x 10)) x)) 0)) 

但是,我只是通过使用名称抽象上述过程进行修改,并在每次值增加 10 时调用 foo !
(define foo ((lambda (x) (lambda () (set! x (+ x 10)) x)) 0))

有人可以解释一下吗?

最佳答案

您正在调用的函数是一个计数器,每次调用时都会返回一个大 10 的数字。

在第一种情况下,每次都创建一个新函数,然后立即调用它一次,然后丢弃该函数。所以每次,你都是第一次调用这个计数器的一个新实例,所以它应该返回 10。

在第二种情况下,您创建一次函数并将其分配给一个变量并重复调用同一个函数。由于您正在调用相同的函数,它应该返回 10, 20, ...

关于方案分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9955074/

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