Plumbing 0.4.0
Prismatic's Clojure utility belt.
plumbing.core
Utility belt for Clojure in the wild
Public variables and functions:
- -unless-update
- <-
- ?>
- ?>>
- aconcat
- as->>
- assoc-when
- conj-when
- cons-when
- count-when
- defnk
- dissoc-in
- distinct-by
- distinct-fast
- distinct-id
- fn->
- fn->>
- fnk
- for-map
- frequencies-fast
- get-and-set!
- grouped-map
- if-letk
- indexed
- interleave-all
- keywordize-map
- lazy-get
- letk
- map-from-keys
- map-from-vals
- map-keys
- map-vals
- mapply
- memoized-fn
- millis
- positions
- rsort-by
- safe-get
- safe-get-in
- singleton
- sum
- swap-pair!
- unchunk
- update
- update-in-when
- when-letk
plumbing.fnk.impl
Core utilities for parsing our 'fnk'-style binding syntax. Documented and tested through the actual 'letk','fnk', and 'defnk' macros in plumbing.core.
Public variables and functions:
plumbing.fnk.pfnk
Core protocol and helpers for schema.core to extract and attach input and output schemas to fnks. This protocol says nothing about how fnks are created, so users are free to create PFnks directly using fn->fnk, or using custom binding syntax (of which 'fnk' et al are one possible example).
Public variables and functions:
plumbing.fnk.schema
A very simple type system for a subset of schemas consisting of nested maps with optional or required keyword keys; used by fnk and kin.
Public variables and functions:
- assert-distinct
- assert-iae
- assert-satisfies-schema
- compose-schemata
- explicit-schema-key-map
- GraphInputSchema
- GraphIOSchemata
- guess-expr-output-schema
- InputSchema
- IOSchemata
- map-schema?
- MapOutputSchema
- non-map-diff
- non-map-union
- OutputSchema
- possibly-contains?
- required-toplevel-keys
- safe-get
- Schema
- schema-diff
- schema-key
- sequence-schemata
- split-schema
- split-schema-keys
- union-input-schemata
- unwrap-schema-form-key
plumbing.graph
A Graph is a simple, declarative way to define a composition of functions that is easy to define, modify, execute, test, and monitor.
Public variables and functions:
plumbing.graph.positional
A compilation method for graphs that avoids maps for speed.
Public variables and functions:
plumbing.map
Common operations on maps (both Clojure immutable and mutable Java stuff)