Clojure 中的尾调用消除?
有人可以将这个 (plt) 方案代码重写为 Clojure 吗?
(define (f n)
(printf "(f ~a)~n" n)
(g n))
(define (g n)
(printf "(g ~a)~n" n)
(h n))
(define (h n)
(printf "(h ~a)~n" n)
(f (+ n 1)))
以这样的方式不使过程 f、g 和 h 一起崩溃并允许代码无限期地运行而不崩溃?
Can somebody rewrite this (plt) Scheme code into Clojure?
(define (f n)
(printf "(f ~a)~n" n)
(g n))
(define (g n)
(printf "(g ~a)~n" n)
(h n))
(define (h n)
(printf "(h ~a)~n" n)
(f (+ n 1)))
In such a way as to not collapse the procedures f, g, and h together and to allow the code to run indefinitely without crashing?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用蹦床:
开始使用:
我已经让这段代码在我的电脑上在后台运行了大约 5 个小时,并且内存使用量持平。
Use a trampoline:
Kick it off with:
I've had this code running on my pc in the background for about 5 hours now and the memory usage is flat.