gpt4 book ai didi

scheme - Scheme中的begin有什么用?

转载 作者:行者123 更新时间:2023-12-04 13:47:58 48 4
gpt4 key购买 nike

我不明白如何使用 begin关键字在用 Scheme 编写表达式序列时很有用。

我的意思是,当我写表达式时,它们不应该从左到右求值吗?那么,为什么我还必须包含一个 begin关键词?

我读到了 begin应该消除输入和输出的副作用。谁能给我一个需要开始的情况?

最佳答案

begin当语法只允许一种形式时,每次需要多种形式时都是必需的。例如,如果您需要增加一个变量 y每次使用时:

(+ x 
(begin (set! y (+ y 1)) y)
z)

如果你省略了开始,那么你就不能写出这个表达式(在 Common Lisp 中,同样的表达式可以写成 (+ x (incf y) z))。

请注意 (set! x y)不返回值。这就是我们需要使用 begin 的原因, 自 (begin f1 f2 ... fn)评估 f1 ... fn依次返回 fn的值.所以, (begin (set! y (+ y 1)) y)增加 y 的值和 y求值,然后返回其新值。
begin通常在有一些副作用时使用。

关于scheme - Scheme中的begin有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36517303/

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