(rontolisp) docs
← Namespaces

require

(require 'clause ...)

Loads namespaces and wires each clause's :as alias and :refered names, answering nil -- the same wiring ns does, spelled at top level with quoted libspecs. clojure.string, clojure.set, clojure.java.io (reader only) and clojure.test are built in; any other namespace loads once per program from its file on the source path (Semantics), and one no root holds is an error. Only :refer refers names: a bare :only refers nothing, like the oracle. An unquoted vector spec is accepted too, though real Clojure rejects it. A prefix list '(prefix [sub ...]) wires each member under the prefix, quoted or bare. :reload runs each named namespace again (def resets, defonce keeps its root); :reload-all re-runs their dependencies first. A require inside a function body loads when the body runs, answering nil like any other require.