Suchwow 6.0.0
Such functions! Such doc strings! Much utility!
such.better-doc
Requiring this file will replace some clojure.core
docstrings with better versions.
Public variables and functions:
such.casts
“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.
Public variables and functions:
such.doc
Links to, and support for, online documentation.
such.immigration
Potemkin’s 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))
.
Public variables and functions:
such.imperfection
Were we perfect, we wouldn’t need to test or debug. Since we’re not, a few helpers organized around printing.
such.metadata
Convenience functions for working with metadata. Intended to be used with (:require [such.metadata :as meta])
.
such.ns-state
Manipulate, in a stateful way, a key-value store that belongs to a particular namespace.
such.random
Random numbers and crypographic hashes
such.readable
Stringify nested structures such that all functions - and particular values of your choice - are displayed in a more readable way. value-string and fn-symbol are the key functions.
such.relational
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.
Public variables and functions:
such.shorthand
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 seq
.
Public variables and functions:
such.symbols
Symbol utilities, such as different ways to create symbols.
Public variables and functions:
such.types
Type (and “type-like”) predicates not included in clojure.core.
Public variables and functions:
such.versions
Which version of Clojure am I running in?
such.wide-domains
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: