gpt4 book ai didi

scheme - letrec、named let 和 internal 定义的常见用途?

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

我有几本关于 Scheme 的书,其中一些提到了名为 let 和 letrec 的书,但实际上没有一本会给出令人信服的例子(我的意思是,我何时以及为什么会使用一个而不是另一个)。
有没有letrec/named let 真的比内部定义甚至外部辅助程序更好的选择的例子?

最佳答案

你使用哪一个主要是风格问题。

我发现自己不使用 letrec很多时候,只是更喜欢内部定义。我确实经常使用 named let 来编写尾递归循环,类似于这个无意义的循环。

(let loop ((var init) (other-var other-init))
(cond
((done? var) var)
((finished? other-var) other-var)
(else (loop (modify var) (manipulate other-var)))))

你可以用 letrec 做同样的事情或内部定义,但我发现这个最容易阅读。
letrec当宏扩展到您不想创建定义的地方时,它会很有用。

关于scheme - letrec、named let 和 internal 定义的常见用途?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3736796/

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