Arities ================================================== [name] Docstring ================================================== Prints documentation for a var or special form given its name, or for a spec if given a keyword
Arities ================================================== [name] Docstring ================================================== Prints documentation for a var or special form given its name, or for a spec if given a keyword
(defmacro doc
"Prints documentation for a var or special form given its name,
or for a spec if given a keyword"
{:added "1.0"}
[name]
(if-let [special-name ('{& fn catch try finally try} name)]
`(#'print-doc (#'special-doc '~special-name))
(cond
(special-doc-map name) `(#'print-doc (#'special-doc '~name))
(keyword? name) `(#'print-doc {:spec '~name :doc '~(spec/describe name)})
(find-ns name) `(#'print-doc (#'namespace-doc (find-ns '~name)))
(resolve name) `(#'print-doc (meta (var ~name))))))
(require '[clojure.repl :refer [doc]])
(doc clojure.core)
;; Prints
;; > -------------------------
;; > clojure.core
;; > Fundamental library of the Clojure language
;;
;; => nil
(require '[clojure.repl :refer [doc]])
(doc map)
;; Prints
;; > -------------------------
;; > clojure.core/map
;; > ([f coll] [f c1 c2] [f c1 c2 c3] [f c1 c2 c3 & colls])
;; > Returns a lazy sequence consisting of the result of applying f to the
;; > set of first items of each coll, followed by applying f to the set
;; > of second items in each coll, until any one of the colls is
;; > exhausted. Any remaining items in other colls are ignored. Function
;; > f should accept number-of-colls arguments.
;;
;; => nil