gpt4 book ai didi

scheme - 通过计划中的值(value)混淆

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:31 27 4
gpt4 key购买 nike

考虑从SICP中采取的以下步骤:

 (define (make-withdraw balance)
(lambda (amount)
(if (>= balance amount)
(begin (set! balance
(- balance amount))
balance)
"Insufficient funds")))

假设我说:
 (define x (make-withdraw 100))

make-withdraw返回名为 (lambda (amount) ... )的新环境中的过程( e2)(包含变量 balance的绑定),并将该过程绑定到全局帧中的 x
现在,假设我打电话给:
 (f x)

哪里
 (define (f y) (y 25))

一我听说这个计划毫无价值这是否意味着当 f创建新环境时,它会绑定 e3on x的值的副本?
2也就是说, y(现在)保存的值(在输入 y的主体之后)是由 f保存的 lambda的副本?
三。所以我们现在有两个变量,global中的 xx中的 y,每个变量都包含一个引用 e3中内容的过程?
四如果我是正确的,由 e2x执行的过程是否像指向 y的指针一样?

最佳答案

在传递值的情况下,将计算函数的参数,并将其值绑定到函数参数。
因此,如果参数是表达式,则对其求值并将值绑定到参数如果它是绑定到值的标识符,则该值绑定到参数。
如果一个值很简单,比如一个整数,那么这个整数就“复制”在新环境中分配的某个内存单元中,如果它是更复杂的东西,比如一个闭包(一个编译的函数),那么您可以认为这个对象的“引用”是在新环境中复制的。

关于scheme - 通过计划中的值(value)混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53694761/

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