小编rae*_*aek的帖子

Clojure递归和一个懒惰的序列

好吧,我有点卡在这一点,我真的可以做我正在尝试用下面这部分代码做的事情:

(recur (conj (get-links (first links)) (rest links))))
Run Code Online (Sandbox Code Playgroud)

get-links返回一系列url,这些url被送入初始进程 - links调用然后应该递归.

我输入的第一个链接有效,但是我试图将一个序列连接到另一个链接的第二个链接给出了以下错误.

"Clojure.lang.LazySeq@xxxxxxx"
Run Code Online (Sandbox Code Playgroud)

现在我想知道,这是否是对生成未评估序列的"休息"(其余链接)的指令的引用?

(defn process-links
  [links]
  (if (not (empty? links))
    (do
      (if (not (is-working (first links)))
        (do
          (println (str (first links) " is not working"))
          (recur (rest links)))
        (do
          (println (str (first links) " is working"))
          (recur (conj (get-links (first links)) (rest links))))))))
Run Code Online (Sandbox Code Playgroud)

如果我对此采取的方法完全错误,请告诉我.

clojure

4
推荐指数
1
解决办法
388
查看次数

标签 统计

clojure ×1