2

我正在完成本教程: http: //moxleystratton.com/clojure/clojure-tutorial-for-the-non-lisp-programmer

并遇到了这个片段:

user=> (loop [i 0]
  (when (< i 5)
    (println "i:" i)
    (recur (inc i))))
i: 0
i: 1
i: 2
i: 3
i: 4
nil

在我的口译员上效果很好!

❯ lein repl
nREPL server started on port 50974
REPL-y 0.1.10
Clojure 1.5.1

现在我正在寻找一些关于什么recur的文档。

不在这里! http://clojure.github.io/clojure/api-index.html

我花了一段时间才弄清楚它是一种“特殊形式”,因此在此页面中进行了描述。

是否有一个具有单一连贯索引的汇编?

4

2 回答 2

8

尝试使用 REPL 中的内置文档:

user=> (doc recur)
-------------------------
recur
  (recur exprs*)
Special Form
  Evaluates the exprs in order, then, in parallel, rebinds
  the bindings of the recursion point to the values of the exprs.
  Execution then jumps back to the recursion point, a loop or fn method.

  Please see http://clojure.org/special_forms#recur

它适用于函数、宏、特殊形式、变量——几乎所有东西。

于 2013-04-09T02:05:48.310 回答
2

clojuredocs.org 上的搜索框是一个很好的起点,它们提供了非常完整的表单和功能列表。请注意,目前 Clojure Docs 尚未与最新版本的 clojure 保持同步,因此存在一些细微差别。在实践中,官方 api 页面已经足够完整并且是最新的。它没有所有的特殊形式,尽管 clojure 中的特殊形式很少,所以这通常不是问题

于 2013-04-09T01:46:51.160 回答