Find-doc但只返回函数名称

时间:2013-06-16 00:17:42

标签: clojure

我记得最近读过一个clojure命令,你可以在find-doc这样的repl上运行,但它只返回列表中的函数名。然后,您可以在所需的功能旁边键入数字,它将为您提供该功能的完整文档。

有谁知道这叫什么?

2 个答案:

答案 0 :(得分:1)

apropos会返回一系列函数名称,然后您可以将其输入doc

user=> (apropos "doc")
(find-doc doc *remote-javadocs* javadoc add-remote-javadoc add-local-javadoc *local-javadocs*)

为Clojure函数构建一个show - workalike非常简单;我不认为我在广泛使用的库中看过一个。

(defn show-fn
  ([s]
    (let [res (sort (apropos s))]
      (dotimes [i (count res)]
        (println (str (inc i) ":") (nth res i)))))
  ([s n]
    (let [res (sort (apropos s))
          r   (nth res (dec n))
          v   (resolve r)]
      (println v)
      (println (:doc (meta v))))))

像这样工作:

user=> (show-fn "doc")
1: *local-javadocs*
2: *remote-javadocs*
3: add-local-javadoc
4: add-remote-javadoc
5: doc
6: find-doc
7: javadoc
nil
user=> (show-fn "doc" 5)
#'clojure.repl/doc
Prints documentation for a var or special form given its name
nil

答案 1 :(得分:0)

我想我找到了它,它是repl-utils

中的show函数