有人能把这个(plt) Scheme代码重写成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一起折叠,并允许代码无限期运行而不会崩溃?
发布于 2010-02-02 12:46:27
使用跳床:
(declare f)
(defn h [n]
(println "(h " n ")")
#(f (+ n 1)))
(defn g [n]
(println "(g " n ")")
#(h n))
(defn f [n]
(println "(f " n ")")
#(g n))
从以下几点开始:
(trampoline f 0)
我已经让这段代码在我的pc后台运行了大约5个小时,内存使用率是持平的。
https://stackoverflow.com/questions/2181852
复制相似问题