gpt4 book ai didi

scheme - 阴阳拼图是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 08:27:10 25 4
gpt4 key购买 nike

我正在尝试了解Scheme中call / cc的语义,并且续篇的Wikipedia页面以阴阳拼图为例:

(let* ((yin
((lambda (cc) (display #\@) cc) (call-with-current-continuation (lambda (c) c))))
(yang
((lambda (cc) (display #\*) cc) (call-with-current-continuation (lambda (c) c)))) )
(yin yang))

它应该输出 @*@**@***@****@...
但我不明白为什么;我希望它能输出 @*@********* ...

有人可以详细解释为什么阴阳拼图以其工作方式起作用吗?

最佳答案

我认为我对此并不完全理解,但是我只能想到一种解释(极度挥手):

  • yinyang首次绑定(bind)在let*中时,将打印第一个@和*。应用(yin yang),并在第一次调用/ cc完成后立即返回顶部。
  • 打印下一个@和*,然后打印另一个*,因为这次,yin重新绑定(bind)到第二个 call / cc的值。
  • (yin yang)再次应用,但是这次在原始yang的环境中执行,其中yin绑定(bind)到第一个调用/ cc,因此控制权返回到打印另一个@。 yang参数包含在第二遍中重新捕获的延续,如我们已经看到的,它将导致打印**。因此,在第三次通过时,将打印@*,然后调用此双星打印连续体,因此它以3星结束,然后重新捕获此三星连续体,...
  • 关于scheme - 阴阳拼图是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2694679/

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