Such functions! Such doc strings! Much utility!
Requiring this file will replace some
clojure.core docstrings with better versions.
“Be conservative in what you send, be liberal in what you accept.”
(Postel’s Robustness Principle)
Some Clojure functions require specific types of arguments, such as a symbol representing a namespace. You can use the following functions to convert from what you’ve got to what Clojure requires. Or you can use them to build more accepting variants of those Clojure functions.
Links to, and support for, online documentation.
Functions that make other functions.
import-vars is the most reliable way I know to make a namespace that gathers vars from several namespaces and presents them as a unified API. This namespace builds on it. See the tests and commons.clojure.core for two examples of creating a “favorite functions” namespace that can be included everywhere with (for example)
(ns my.ns (:use my.clojure.core)).
Were we perfect, we wouldn’t need to test or debug. Since we’re not, a few helpers organized around printing.
Various functions on key-value structures
Convenience functions for working with metadata. Intended to be used with
(:require [such.metadata :as meta]).
Makes working with namespaces easier.
Manipulate, in a stateful way, a key-value store that belongs to a particular namespace.
Random numbers and crypographic hashes
This namespace provides two things: better documentation for relational functions in
clojure.set, and an experimental set of functions for “pre-joining” relational tables for a more tree-structured or path-based lookup. See the wiki for more about the latter.
Explicit functions for what could be done easily - but less clearly - by composing clojure.core functions. Anti-shibboleths such as using
not-empty? instead of
Symbol utilities, such as different ways to create symbols.
Type (and “type-like”) predicates not included in clojure.core.
Common operations on vars.
Which version of Clojure am I running in?
Variants of clojure.core functions that accept more types of inputs. This is a catch-all namespace that collects core-overriding functions from other namespaces. It has two purposes: