【发布时间】:2018-02-23 01:56:20
【问题描述】:
我正在尝试通过在 REPL 中调用以下表达式来打印给定命名空间中所有函数的文档:
(doseq
[f (dir-fn 'clojure.repl)]
(doc f))
然而,这个表达式的调用会返回nil 而不会将文档打印到 REPL。我知道这可能与 doc 是一个宏有关,但我是 Clojure 新手,不完全确定如何理解这个问题。
- 为什么这个表达式返回
nil而不打印文档? - 如何修改此表达式以打印给定命名空间中每个函数的文档?
谢谢!
更新:结合两个提供的答案:
(defn ns-docs [ns']
(doseq [[symbol var] (ns-interns ns')]
(newline)
(println symbol)
(print " ")
(println (:doc (meta var)))))
(ns-docs 'clojure.repl)
【问题讨论】:
标签: clojure