Joker Standard Namespaces and Types

# Indexes of Joker Standard Namespaces and Types

## Index of Special Forms

- def
- do
- if
- quote
- recur
- throw
- try
- var

## Index of Namespaces

- joker.base64
- joker.better-cond
- joker.bolt
- joker.core
- joker.crypto
- joker.csv
- joker.filepath
- joker.git
- joker.hex
- joker.hiccup
- joker.html
- joker.http
- joker.io
- joker.json
- joker.markdown
- joker.math
- joker.os
- joker.pprint
- joker.repl
- joker.runtime
- joker.set
- joker.strconv
- joker.string
- joker.template
- joker.test
- joker.time
- joker.tools.cli
- joker.url
- joker.uuid
- joker.walk
- joker.yaml

## Index of Types

- ArrayMap
- ArrayMapSeq
- ArrayNodeSeq
- ArraySeq
- ArrayVector
- Associative
- Atom
- BigFloat
- BigInt
- BoltDB
- Boolean
- Buffer
- BufferedReader
- Callable
- Channel
- Char
- Collection
- Comparable
- Comparator
- ConsSeq
- Counted
- CountedIndexed
- Delay
- Deref
- Double
- Error
- EvalError
- ExInfo
- File
- Fn
- Gettable
- GitRepo
- HashMap
- IOReader
- IOWriter
- Indexed
- Int
- KVReduce
- Keyword
- LazySeq
- List
- Map
- MapSet
- MappingSeq
- Meta
- Named
- Namespace
- Nil
- NodeSeq
- Number
- ParseError
- Pending
- Proc
- Ratio
- RecurBindings
- Reduce
- Ref
- Regex
- Reversible
- Seq
- Seqable
- Sequential
- Set
- Stack
- String
- StringSeq
- Symbol
- Time
- Type
- Var
- Vec
- Vector
- VectorRSeq
- VectorSeq

# Joker Special Forms

- ### def

      (def symbol doc-string? init?)

  Creates and interns a global var with the name
  of symbol in the current namespace (*ns*) or locates such a var if
  it already exists. If init is supplied, it is evaluated, and the
  root binding of the var is set to the resulting value. If init is
  not supplied, the root binding of the var is unaffected.

- ### do

      (do exprs*)

  Evaluates the expressions in order and returns the value of
  the last. If no expressions are supplied, returns nil.

- ### if

      (if test then else?)

  Evaluates test. If not the singular values nil or false,
  evaluates and yields then, otherwise, evaluates and yields else. If
  else is not supplied it defaults to nil.

- ### quote

      (quote form)

  Yields the unevaluated form.

- ### recur

      (recur exprs*)

  Evaluates the exprs in order, then, in parallel, rebinds
  the bindings of the recursion point to the values of the exprs.
  Execution then jumps back to the recursion point, a loop or fn method.

- ### throw

      (throw expr)

  The expr is evaluated and thrown, therefore it should yield an Error object.
  User code should normally use (ex-info) function to create new Error objects.

- ### try

      (try expr* catch-clause* finally-clause?)

  catch-clause => (catch type name expr*)
  finally-clause => (finally expr*)
  Catches and handles errors.
  User code should normally use (ex-info) function to create new Error objects.

- ### var

      (var symbol)

  The symbol must resolve to a var, and the Var object
  itself (not its value) is returned. The reader macro #'x expands to (var x).

# Joker Standard Namespaces

- ### joker.base64

  v1.0

  Implements base64 encoding as specified by RFC 4648.

  details

- ### joker.better-cond

  v1.0

  A collection of variations on Clojure's core macros.

  details

- ### joker.bolt

  v1.0

  Provide API for Bolt embedded database https://github.com/etcd-io/bbolt.

  details

- ### joker.core

  v1.0

  Core library of Joker.

  details

- ### joker.crypto

  v1.0

  Implements common cryptographic and hash functions.

  details

- ### joker.csv

  v1.0

  Reads and writes comma-separated values (CSV) files as defined in RFC 4180.

  details

- ### joker.filepath

  v1.0

  Implements utility routines for manipulating filename paths.

  details

- ### joker.git

  v1.0

  Provides API for accessing and manipulating git repositories.

  details

- ### joker.hex

  v1.0

  Implements hexadecimal encoding and decoding.

  details

- ### joker.hiccup

  v1.0

  Renders HTML, XML, or XHTML markup to a string, based on prior work in Hiccup.

  details

- ### joker.html

  v1.0

  Provides functions for escaping and unescaping HTML text.

  details

- ### joker.http

  v1.0

  Provides HTTP client and server implementations.

  details

- ### joker.io

  v1.0

  Provides basic interfaces to I/O primitives.

  details

- ### joker.json

  v1.0

  Implements encoding and decoding of JSON as defined in RFC 4627.

  details

- ### joker.markdown

  v1.0

  Implements GitHub Flavored Markdown rendering.

  details

- ### joker.math

  v1.0

  Provides basic constants and mathematical functions.

  details

- ### joker.os

  v1.0

  Provides a platform-independent interface to operating system functionality.

  details

- ### joker.pprint

  v1.0

  Pretty printing utilities. Based on Clojure implementation.

  details

- ### joker.repl

  v1.0

  Utilities meant to be used interactively at the REPL.

  details

- ### joker.runtime

  v1.0

  Provides access to Go and Joker runtime information.

  details

- ### joker.set

  v1.0

  Set operations such as union/intersection.

  details

- ### joker.strconv

  v1.0

  Implements conversions to and from string representations of basic data types.

  details

- ### joker.string

  v1.0

  Implements simple functions to manipulate strings.

  details

- ### joker.template

  v1.0

  Macros that expand to repeated copies of a template expression.

  details

- ### joker.test

  v1.0

  A unit testing framework.

  details

- ### joker.time

  v1.0

  Provides functionality for measuring and displaying time.

  details

- ### joker.tools.cli

  v1.0

  Tools for working with command line arguments.

  details

- ### joker.url

  v1.0

  Parses URLs and implements query escaping.

  details

- ### joker.uuid

  v1.0

  Generates UUIDs.

  details

- ### joker.walk

  v1.0

  Defines a generic tree walker for Clojure data structures.

  details

- ### joker.yaml

  v1.0

  Implements encoding and decoding of YAML.

  details

# Joker Standard Types

Note: These types are "omnipresent", in that they're not members of any particular namespace, but are available for resolution regardless of the current value of `*ns*` (the current namespace).

- ### ArrayMap

  v1.0

  (Concrete reference type)

- ### ArrayMapSeq

  v1.0

  (Concrete reference type)

- ### ArrayNodeSeq

  v1.0

  (Concrete reference type)

- ### ArraySeq

  v1.0

  (Concrete reference type)

- ### ArrayVector

  v1.0

  (Concrete reference type)

- ### Associative

  v1.0

  (Interface type)

- ### Atom

  v1.0

  (Concrete reference type)

- ### BigFloat

  v1.0

  (Concrete reference type)
  Wraps the Go 'math/big.Float' type

- ### BigInt

  v1.0

  (Concrete reference type)
  Wraps the Go 'math/big.Int' type

- ### BoltDB

  v1.0

  (Concrete type)
  Wraps Bolt DB type

- ### Boolean

  v1.0

  (Concrete type)
  Wraps the Go 'bool' type

- ### Buffer

  v1.0

  (Concrete reference type)

- ### BufferedReader

  v1.0

  (Concrete reference type)

- ### Callable

  v1.0

  (Interface type)

- ### Channel

  v1.0

  (Concrete reference type)

- ### Char

  v1.0

  (Concrete type)
  Wraps the Go 'rune' type

- ### Collection

  v1.0

  (Interface type)

- ### Comparable

  v1.0

  (Interface type)

- ### Comparator

  v1.0

  (Interface type)

- ### ConsSeq

  v1.0

  (Concrete reference type)

- ### Counted

  v1.0

  (Interface type)

- ### CountedIndexed

  v1.0

  (Interface type)

- ### Delay

  v1.0

  (Concrete reference type)

- ### Deref

  v1.0

  (Interface type)

- ### Double

  v1.0

  (Concrete type)
  Wraps the Go 'float64' type

- ### Error

  v1.0

  (Interface type)

- ### EvalError

  v1.0

  (Concrete reference type)

- ### ExInfo

  v1.0

  (Concrete reference type)

- ### File

  v1.0

  (Concrete reference type)

- ### Fn

  v1.0

  (Concrete reference type)
  A callable function or macro implemented via Joker code

- ### Gettable

  v1.0

  (Interface type)

- ### GitRepo

  v1.0

  (Concrete type)
  Wraps git.Repository type

- ### HashMap

  v1.0

  (Concrete reference type)

- ### IOReader

  v1.0

  (Interface type)

- ### IOWriter

  v1.0

  (Interface type)

- ### Indexed

  v1.0

  (Interface type)

- ### Int

  v1.0

  (Concrete type)
  Wraps the Go 'int' type, which is 32 bits wide on 32-bit hosts, 64 bits wide on 64-bit hosts, etc.

- ### KVReduce

  v1.0

  (Interface type)

- ### Keyword

  v1.0

  (Concrete type)
  A possibly-namespace-qualified name prefixed by ':'

- ### LazySeq

  v1.0

  (Concrete reference type)

- ### List

  v1.0

  (Concrete reference type)

- ### Map

  v1.0

  (Interface type)

- ### MapSet

  v1.0

  (Concrete reference type)

- ### MappingSeq

  v1.0

  (Concrete reference type)

- ### Meta

  v1.0

  (Interface type)

- ### Named

  v1.0

  (Interface type)

- ### Namespace

  v1.0

  (Concrete reference type)

- ### Nil

  v1.0

  (Concrete type)
  The 'nil' value

- ### NodeSeq

  v1.0

  (Concrete reference type)

- ### Number

  v1.0

  (Interface type)

- ### ParseError

  v1.0

  (Concrete reference type)

- ### Pending

  v1.0

  (Interface type)

- ### Proc

  v1.0

  (Concrete reference type)
  A callable function implemented via Go code

- ### Ratio

  v1.0

  (Concrete reference type)
  Wraps the Go 'math.big/Rat' type

- ### RecurBindings

  v1.0

  (Concrete reference type)

- ### Reduce

  v1.0

  (Interface type)

- ### Ref

  v1.0

  (Interface type)

- ### Regex

  v1.0

  (Concrete reference type)
  Wraps the Go 'regexp.Regexp' type

- ### Reversible

  v1.0

  (Interface type)

- ### Seq

  v1.0

  (Interface type)

- ### Seqable

  v1.0

  (Interface type)

- ### Sequential

  v1.0

  (Interface type)

- ### Set

  v1.0

  (Interface type)

- ### Stack

  v1.0

  (Interface type)

- ### String

  v1.0

  (Concrete type)
  Wraps the Go 'string' type

- ### StringSeq

  v1.0

  (Concrete reference type)

- ### Symbol

  v1.0

  (Concrete type)

- ### Time

  v1.0

  (Concrete type)
  Wraps the Go 'time.Time' type

- ### Type

  v1.0

  (Concrete reference type)

- ### Var

  v1.0

  (Concrete reference type)

- ### Vec

  v1.0

  (Interface type)

- ### Vector

  v1.0

  (Concrete reference type)

- ### VectorRSeq

  v1.0

  (Concrete reference type)

- ### VectorSeq

  v1.0

  (Concrete reference type)