How to use clojure doc function?

zaforas picture zaforas · Nov 30, 2011 · Viewed 9.7k times · Source

I'm just starting with Clojure and can't access to the doc function.

I'm using clojure 1.3 with emacs24 and swank-clojure.

user> *clojure-version*
{:major 1, :minor 3, :incremental 0, :qualifier nil}

But when I try:

(doc doc)

I get:

Unable to resolve symbol: doc in this context
[Thrown class java.lang.RuntimeException]

I've read Why does REPL treat clojure.core/doc as a var? and as suggested:

(clojure.repl/doc doc)

But then, I receive:

clojure.repl
[Thrown class java.lang.ClassNotFoundException]

It seems I am not "importing" the usual namespaces, but really doesn't know how to do it.

Thanks.

UPDATE

Using clojure from java (java -jar ...) it works well, so it's a problem with the emacs setup.

Answer

Julien Chastang picture Julien Chastang · Nov 30, 2011

You need to grab the clojure.repl namespace one way or another:

From the REPL

user> (use 'clojure.repl)
user> (doc doc)

or in your program

(ns foobar
  (:use [clojure.repl]))