Take the 2-minute tour ×  I recently started learning Clojure
and I'm having a bit of difficulty wrapping my head around
namespaces. As the creator of Clojure said, newcomers often
struggle to get the concept right. I don't clearly understand
the difference between (use ...) and (require ...). For example
playing around in the REPL if I say (use 'clojure.contrib.str-
utils2) I get warnings about functions in clojure.core namespace
being replaced by the ones in clojure.contrib.str-utils2, but
that doesn't happen when I use (require 'clojure.contrib.str-
utils2). I'm not sure that I will always want to replace what's
in clojure.core, so can someone point some best practices for
importing external stuff and managing namespaces in Clojure?  Oh
and also, when should I use :use and :require? Only inside (ns
....)?  Thanks in advance.  share|improve this question possible
duplicate of difference between use and require –  om-nom-nom
Feb 26 '13 at 15:53 add comment  1 Answer  up vote 35 down vote
accepted  The answer l