This page lists, by purpose, the names that the viewer colours. The names of clojure.core were taken from the source of the library (core.clj, core_deftype.clj, core_print.clj, core_proxy.clj, gvec.clj and the others of the release in changes.md, version 1.12.6) and each name was checked against it; the other namespaces were taken from the source of each. In a call position a special form or macro is coloured as a keyword and any other name as a function; elsewhere only these library names are coloured as functions. Parameters and locals are coloured as variables.
Special forms and macros
| Group | Names |
|---|---|
| special forms | def if do let* loop* recur throw try catch finally quote var fn* monitor-enter monitor-exit new set! . .. case* letfn* import* deftype* reify* js* ns* |
| conditionals | and or when when-not when-let when-first when-some if-let if-not if-some cond condp case |
| threading and arranging | -> ->> as-> cond-> cond->> some-> some->> doto |
| binding and loops | let letfn loop fn for doseq dotimes while binding with-open with-out-str with-in-str with-local-vars with-redefs with-bindings with-precision with-loading-context locking dosync io! sync |
| definitions | defn defn- defmacro defmulti defmethod defonce defprotocol defrecord deftype definterface definline defstruct declare |
| namespaces | ns in-ns import require use refer refer-clojure alias load |
| lazy and concurrent | delay lazy-seq lazy-cat future pvalues |
| types and Java | reify proxy proxy-super extend-type extend-protocol gen-class gen-interface memfn amap areduce bound-fn vswap! |
| other | assert comment time |
| clojure.test macros | deftest deftest- testing is are use-fixtures with-test thrown? thrown-with-msg? |
| core.async, ClojureScript, build files | go go-loop · specify! specify this-as exists? · defproject deftask |
Any other head that begins def followed by a letter (defcomponent, defroutes, defspec) is coloured as a defining form, and the name after it as a function; default, define, defer and definition are not.
clojure.core: numbers, comparison and bits
| Group | Names |
|---|---|
| arithmetic | + - * / +' -' *' inc dec inc' dec' quot rem mod abs max min num rand rand-int rationalize numerator denominator |
| comparison | = == not= < <= > >= compare identical? zero? pos? neg? even? odd? |
| number predicates | number? integer? int? pos-int? neg-int? nat-int? float? double? decimal? ratio? rational? NaN? infinite? |
| coercion | int long short byte float double char boolean bigint bigdec biginteger |
| unchecked | unchecked-add unchecked-add-int unchecked-subtract unchecked-subtract-int unchecked-multiply unchecked-multiply-int unchecked-negate unchecked-negate-int unchecked-inc unchecked-inc-int unchecked-dec unchecked-dec-int unchecked-divide-int unchecked-remainder-int unchecked-byte unchecked-char unchecked-short unchecked-int unchecked-long unchecked-float unchecked-double |
| bit operations | bit-and bit-and-not bit-clear bit-flip bit-not bit-or bit-set bit-shift-left bit-shift-right bit-test bit-xor unsigned-bit-shift-right |
| parsing and ids | parse-boolean parse-double parse-long parse-uuid random-uuid uuid? inst? inst-ms uri? |
clojure.core: collections and sequences
| Group | Names |
|---|---|
| create | list list* vector vec vector-of hash-map array-map sorted-map sorted-map-by hash-set sorted-set sorted-set-by set zipmap struct struct-map create-struct accessor empty |
| access | get get-in nth nthnext nthrest first second last ffirst fnext nfirst nnext next rest butlast peek rseq find keys vals key val select-keys contains? count bounded-count subseq rsubseq subvec |
| change | conj cons assoc assoc-in dissoc disj pop update update-in update-keys update-vals merge merge-with into replace reverse sort sort-by shuffle transient persistent! conj! assoc! dissoc! pop! disj! |
| collection predicates | coll? list? vector? map? set? seq? seqable? sequential? associative? counted? indexed? reversible? sorted? empty? not-empty map-entry? record? chunked-seq? |
| sequence functions | seq map mapv mapcat map-indexed filter filterv remove keep keep-indexed take take-while take-nth take-last drop drop-while drop-last split-at splitv-at split-with partition partitionv partition-all partitionv-all partition-by group-by frequencies distinct dedupe interleave interpose concat flatten cycle repeat repeatedly iterate range rand-nth random-sample tree-seq seque sequence doall dorun run! iteration |
| reducing | reduce reduce-kv reductions reduced reduced? ensure-reduced unreduced transduce eduction completing cat halt-when volatile! vreset! volatile? |
| testing items | some every? not-any? not-every? some? any? distinct? not nil? true? false? boolean? max-key min-key comparator replicate |
| functions on functions | apply partial comp juxt complement constantly identity fnil every-pred some-fn memoize trampoline fn? ifn? bound-fn* |
| chunked sequences | chunk chunk-append chunk-buffer chunk-cons chunk-first chunk-next chunk-rest |
| seq sources | line-seq file-seq xml-seq re-seq iterator-seq enumeration-seq resultset-seq stream-seq! stream-reduce! stream-transduce! stream-into! |
clojure.core: names, strings, printing and reading
| Group | Names |
|---|---|
| symbols and keywords | symbol symbol? keyword keyword? find-keyword name namespace gensym munge namespace-munge ident? simple-ident? qualified-ident? simple-keyword? qualified-keyword? simple-symbol? qualified-symbol? |
| strings and characters | str subs format string? char? char-escape-string char-name-string re-pattern re-find re-matches re-matcher re-groups |
| printing | print println pr prn print-str println-str pr-str prn-str printf newline flush print-method print-dup print-simple print-ctor print-initialized |
| reading and I/O | read read-string read+string read-line slurp spit load-file load-reader load-string reader-conditional reader-conditional? tagged-literal tagged-literal? default-data-readers |
| evaluation | eval macroexpand macroexpand-1 destructure compile special-symbol? resolve requiring-resolve clojure-version |
| exceptions | ex-info ex-data ex-message ex-cause Throwable->map StackTraceElement->vec elide-top-frames |
| debugging | tap> add-tap remove-tap test |
Dynamic variables that begin and end with * (*ns*, *out*, *in*, *err*, *print-length*, *warn-on-reflection*, *assert*, *1 and the others) are coloured as variables by their shape; a name that starts with * and ends with * and is longer than two characters.
clojure.core: vars, namespaces, state, types and Java
| Group | Names |
|---|---|
| namespaces | all-ns create-ns find-ns the-ns remove-ns loaded-libs ns-name ns-aliases ns-imports ns-interns ns-map ns-publics ns-refers ns-resolve ns-unalias ns-unmap add-classpath find-var intern |
| vars | var-get var-set var? bound? thread-bound? alter-var-root with-redefs-fn get-thread-bindings push-thread-bindings pop-thread-bindings |
| metadata | meta with-meta vary-meta alter-meta! reset-meta! |
| atoms and refs | atom swap! swap-vals! reset! reset-vals! compare-and-set! ref ref-set alter commute ensure ref-history-count ref-max-history ref-min-history deref set-validator! get-validator add-watch remove-watch |
| agents and futures | agent send send-off send-via await await-for await1 agent-error agent-errors clear-agent-errors restart-agent release-pending-sends error-handler error-mode set-error-handler! set-error-mode! set-agent-send-executor! set-agent-send-off-executor! shutdown-agents future-call future-cancel future-cancelled? future-done? future? promise deliver force delay? realized? pmap pcalls |
| hierarchies and multimethods | derive underive isa? parents ancestors descendants make-hierarchy methods get-method prefer-method prefers remove-method remove-all-methods |
| protocols and proxies | extend extends? extenders satisfies? find-protocol-impl find-protocol-method construct-proxy get-proxy-class init-proxy update-proxy |
| classes and types | class class? type instance? cast bases supers bean |
| arrays | aclone aget aset aset-boolean aset-byte aset-char aset-double aset-float aset-int aset-long aset-short alength make-array object-array to-array to-array-2d into-array boolean-array byte-array char-array short-array int-array long-array float-array double-array booleans bytes bytes? chars shorts ints longs floats doubles |
| hashing | hash hash-combine hash-ordered-coll hash-unordered-coll mix-collection-hash |
ClojureScript names
The viewer also colours these names of cljs.core that are not in clojure.core: clj->js js->clj js-obj js-keys js-delete js-invoke js-mod array array? object? array-seq undefined? enable-console-print! set-print-fn! set-print-err-fn!.
The other namespaces
A qualified name is coloured as a function when its alias (made with :as, or one of the usual ones when there is no ns form) or its full namespace names one of these, and the name is in the list. In the head of a call every qualified name is coloured as a function.
| Namespace (usual alias) | Names |
|---|---|
clojure.string (str, string) | blank? capitalize ends-with? escape includes? index-of join last-index-of lower-case re-quote-replacement replace replace-first reverse split split-lines starts-with? trim trim-newline triml trimr upper-case |
clojure.set (set) | difference index intersection join map-invert project rename rename-keys select subset? superset? union |
clojure.walk (walk) | keywordize-keys macroexpand-all postwalk postwalk-demo postwalk-replace prewalk prewalk-demo prewalk-replace stringify-keys walk |
clojure.zip (zip) | append-child branch? children down edit end? insert-child insert-left insert-right left leftmost lefts make-node next node path prev remove replace right rightmost rights root seq-zip up vector-zip xml-zip zipper |
clojure.edn (edn) | read read-string |
clojure.data (data) | diff equality-partition diff-similar |
clojure.test (test) | are assert-any assert-expr assert-predicate compose-fixtures deftest deftest- do-report file-position function? get-possibly-unbound-var inc-report-counter is join-fixtures report run-all-tests run-test run-test-var run-tests set-test successful? test-all-vars test-ns test-var test-vars testing testing-contexts-str testing-vars-str try-expr use-fixtures with-test with-test-out |
clojure.repl (repl) | apropos demunge dir dir-fn doc find-doc pst root-cause set-break-handler! source source-fn stack-element-str thread-stopper |
clojure.java.io (io) | as-relative-path copy delete-file file input-stream make-parents output-stream reader resource writer |
clojure.pprint (pp) | cl-format code-dispatch fresh-line formatter formatter-out get-pretty-writer pp pprint pprint-indent pprint-logical-block pprint-newline pprint-tab print-length-loop print-table set-pprint-dispatch simple-dispatch with-pprint-dispatch write write-out |
clojure.spec.alpha (s, spec) | & * + ? alt and assert cat check-asserts check-asserts? coll-of conform conformer def describe double-in every every-kv exercise exercise-fn explain explain-data explain-out explain-printer explain-str fdef form fspec gen get-spec inst-in int-in invalid? keys keys* map-of merge multi-spec nilable nonconforming or registry regex? spec spec? tuple unform valid? with-gen |
clojure.spec.test.alpha (stest) | check checkable-syms enumerate-namespace instrument instrumentable-syms instrumented-vars summarize-results unstrument with-instrument-disabled |
clojure.core.async (async, a) | <! <!! >! >!! admix alt! alt!! alts! alts!! buffer chan close! dropping-buffer go go-loop into map merge mix mult offer! onto-chan! partition partition-by pipe pipeline pipeline-async pipeline-blocking poll! promise-chan pub put! reduce sliding-buffer solo-mode split sub take take! tap thread timeout to-chan! toggle transduce unblocking-buffer? unique unmix unmix-all unsub unsub-all untap untap-all |
clojure.math (math) | acos add-exact asin atan atan2 cbrt ceil copy-sign cos cosh decrement-exact exp expm1 floor floor-div floor-mod get-exponent hypot IEEE-remainder increment-exact log log10 log1p multiply-exact negate-exact next-after next-down next-up pow random rint round scalb signum sin sinh sqrt subtract-exact tan tanh to-degrees to-radians ulp (the constants E and PI are values) |
clojure.java.shell (shell) | sh with-sh-dir with-sh-env |
clojure.datafy (datafy) | datafy nav |
clojure.stacktrace | print-cause-trace print-stack-trace print-throwable print-trace-element root-cause e |
clojure.template | apply-template do-template |
clojure.reflect | reflect type-reflect |
clojure.instant | read-instant-calendar read-instant-date read-instant-timestamp |
clojure.xml | parse emit emit-element |
clojure.core.reducers (r) | cat fold foldcat monoid reduce reducer folder filter flatten map mapcat remove take take-while drop |
clojure.core.protocols | coll-reduce datafy nav internal-reduce |
clojure.repl.deps | add-lib add-libs sync-deps |
Also shipped with the language and not in this table: clojure.main (main, repl, load-script), clojure.inspector, clojure.java.browse, clojure.java.process (start, exec, stdin, stdout, stderr, to-file, from-file, exit-ref), clojure.uuid, clojure.core.server and clojure.tools.deps.interop.
Not described
Known, not yet covered
- Reference: this page names functions and does not give their arguments, results or behaviour; for that see the clojure.core API. The documentation strings of
core.cljwere not tabulated. - Reference: third-party libraries (
clojure.data.json,clojure.tools.logging,clojure.core.match,clojure.core.logic,test.checkand so on) are not covered, and the viewer does not colour their names specially. - Viewer: the other namespaces are known by their alias in the file or by the usual aliases; an alias that is made by a call at run time (
(alias 'x 'clojure.string)) is not followed. A name of the library is coloured as a function wherever it appears, even where the program binds the same name as a local.
Unknown
- Reference: the ClojureScript names listed above were checked against
cljs/core.cljs(downloaded); the list is not complete, becausecljs.corehas many names thatclojure.corelacks, and macros ofcljs.core(in a separate file) were not read. - Reference: the namespace tables of
clojure.core.asyncandclojure.core.reducersare from the sources of those libraries as downloaded;core.asyncnames for the macrosgoandalt!are macros, listed here with the functions.
See also
- Sequences and laziness, Concurrency and Data structures – the same names in use
- Common Lisp: standard macros