相关疑难解决方法(0)

我怎样才能创建一个lazy-seq向量

运行此按预期工作:

(defn long-seq [n]
  (lazy-seq (cons 
             (list n {:somekey (* n 2)})
             (long-seq (+ n 1)))))
(take 3 (long-seq 3))
; => ((3 {:somekey 6}) (4 {:somekey 8}) (5 {:somekey 10}))
Run Code Online (Sandbox Code Playgroud)

但是我想用矢量做同样的事情:

(defn long-seq-vec [n]
  (lazy-seq (into 
             (vector (list n {:somekey (* n 2)}))
             (long-seq-vec (+ n 1)))))
(take 3 (long-seq-vec 3))
Run Code Online (Sandbox Code Playgroud)

这给了我一个堆栈溢出.为什么?

clojure lazy-sequences

5
推荐指数
1
解决办法
967
查看次数

标签 统计

clojure ×1

lazy-sequences ×1