From 893a80dd5c3fc520d560c32c9cb1d6ae4f9786bb Mon Sep 17 00:00:00 2001 From: Chris Oakman Date: Sat, 13 Jan 2018 15:51:21 -0500 Subject: [PATCH] missed on last commit --- public/docs.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/public/docs.json b/public/docs.json index a8be1ea..16e0a1c 100644 --- a/public/docs.json +++ b/public/docs.json @@ -1 +1 @@ -{"cljs.core/*":{"full-name":"cljs.core/*","signature":["[]","[x]","[x y]","[x y & more]"],"description-html":"

Returns the product of nums.

\n

(*) returns 1.

\n","related":["cljs.core/+","cljs.core//"]},"cljs.core/+":{"full-name":"cljs.core/+","signature":["[]","[x]","[x y]","[x y & more]"],"description-html":"

Returns the sum of nums.

\n

(+) returns 0.

\n","related":["cljs.core/*","cljs.core/-"]},"cljs.core/-":{"full-name":"cljs.core/-","signature":["[x]","[x y]","[x y & more]"],"description-html":"

If no ys are supplied, returns the negation of x, else subtracts the ys\nfrom x and returns the result.

\n","related":["cljs.core/+"]},"cljs.core/->":{"full-name":"cljs.core/->","signature":["[x & forms]"],"description-html":"

The thread-first macro "threads" an expression through several forms as the\nsecond item in a list.

\n

Inserts x as the second item in the first form, making a list of it if it is\nnot a list already. If there are more forms, inserts the first form as the\nsecond item in second form, etc.

\n\n \n \n \n \n \n \n \n
CodeExpands To
\n(-> x\n  (a b c)\n  d\n  (x y z))
\n(x (d (a x b c)) y z)
","related":["cljs.core/->>"],"type":"macro"},"cljs.core/->>":{"full-name":"cljs.core/->>","signature":["[x & forms]"],"description-html":"

The thread-last macro "threads" an expression through several forms as the last\nitem in a list.

\n

Inserts x as the last item in the first form, making a list of it if it is not\na list already. If there are more forms, inserts the first form as the last item\nin second form, etc.

\n\n \n \n \n \n \n \n \n
CodeExpands To
\n(->> x\n  (a b c)\n  d\n  (x y z))
\n(x y z (d (a b c x)))
","related":["cljs.core/->"],"type":"macro"},"cljs.core//":{"full-name":"cljs.core//","signature":["[x]","[x y]","[x y & more]"],"description-html":"

If no denominators are supplied, returns 1/numerator, else returns numerator\ndivided by all of the denominators.

\n","related":["cljs.core/*","cljs.core/quot"]},"cljs.core/<":{"full-name":"cljs.core/<","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is greater than the previous\none, false otherwise.

\n","related":["cljs.core/<="]},"cljs.core/<=":{"full-name":"cljs.core/<=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is greater than or equal to the\nprevious one, false otherwise.

\n","related":["cljs.core/<"]},"cljs.core/=":{"full-name":"cljs.core/=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if the value of x equals the value of y, false otherwise.

\n

= is a value comparison, not an identity comparison.

\n

All collections can be tested for value, regardless of "depth".

\n","related":["cljs.core/==","cljs.core/not=","cljs.core/identical?"]},"cljs.core/==":{"full-name":"cljs.core/==","signature":["[x]","[x y]","[x y & more]"],"description-html":"

This is an equality check for numbers of different types that was carried over from Clojure,\nto allow compatibility when converting code to ClojureScript.

\n

Since there is only a single number type in JavaScript, 64-bit floating point, there is no\nreason to use the == operator in ClojureScript.

\n

Behavior on non-number arguments is undefined.

\n","related":["cljs.core/=","cljs.core/identical?"]},"cljs.core/>":{"full-name":"cljs.core/>","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is less than the previous\none, false otherwise.

\n","related":["cljs.core/>="]},"cljs.core/>=":{"full-name":"cljs.core/>=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is less than or equal to the\nprevious one, false otherwise.

\n","related":["cljs.core/>"]},"cljs.core/aclone":{"full-name":"cljs.core/aclone","signature":["[arr]"],"description-html":"

Creates a clone of the given JavaScript array arr. The result is a new\nJavaScript array, which is a shallow copy, not a deep copy.

\n","related":["cljs.core/array","cljs.core/make-array"]},"cljs.core/add-watch":{"full-name":"cljs.core/add-watch","signature":["[a key f]"],"description-html":"

Adds a watch function f to atom a that will execute when the value of a\nchanges.

\n

The watch function takes 4 arguments: a key, the atom, its old state, and its\nnew state.

\n

key should be a keyword and can be used with remove-watch to remove the\nwatch function.

\n","related":["cljs.core/remove-watch"]},"cljs.core/aget":{"full-name":"cljs.core/aget","signature":["[array i]","[array i & idxs]"],"description-html":"

Returns the value at index i from JavaScript arrays and objects.

\n

Can be used to retrieve nested properties with the additional idxs arguments.

\n","related":["cljs.core/..","cljs.core/aset","cljs.core/get","cljs.core/nth"]},"cljs.core/and":{"full-name":"cljs.core/and","signature":["[]","[x]","[x & next]"],"description-html":"

Evaluates arguments one at a time from left to right. If an argument returns\nlogical false (nil or false), and returns that value and doesn't evaluate any\nof the other arguments, otherwise it returns the value of the last argument.

\n

(and) returns true.

\n","related":["cljs.core/or","cljs.core/if"],"type":"macro"},"cljs.core/apply":{"full-name":"cljs.core/apply","signature":["[f args]","[f x args]","[f x y args]","[f x y z args]","[f a b c d & args]"],"description-html":"

Applies function f to the argument list formed by prepending intervening\narguments to args.

\n","related":["cljs.core/map"]},"cljs.core/array":{"full-name":"cljs.core/array","signature":["[& args]"],"description-html":"

Creates a JavaScript array containing args.

\n

The tagged literal #js [1 2 3] is equivalent to (array 1 2 3)

\n","related":["cljs.core/aclone","cljs.core/make-array","cljs.core/clj->js"]},"cljs.core/array-map":{"full-name":"cljs.core/array-map","signature":["[& keyvals]"],"description-html":"

Returns a new array map (a map implemented with arrays) with the supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/assoc","cljs.core/hash-map","cljs.core/sorted-map"]},"cljs.core/array?":{"full-name":"cljs.core/array?","signature":["[x]"],"description-html":"

Returns true if x is a JavaScript array, false otherwise.

\n","related":["cljs.core/object?"]},"cljs.core/as->":{"full-name":"cljs.core/as->","signature":["[expr name & forms]"],"description-html":"

Binds name to expr, evaluates the first form in the lexical context of that\nbinding, then binds name to that result, repeating for each successive form,\nreturning the result of the last form.

\n

Useful for when you want a threading macro to use different "places" at each\nform.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/cond->","cljs.core/cond->>","cljs.core/some->","cljs.core/some->>"],"type":"macro"},"cljs.core/aset":{"full-name":"cljs.core/aset","signature":["[array i val]","[array idx idx2 & idxv]"],"description-html":"

Sets val at index i in JavaScript arrays and objects.

\n

Can be used to set nested properties with the additional idxs arguments.

\n","related":["cljs.core/aget","cljs.core/set!","cljs.core/assoc-in"]},"cljs.core/assoc":{"full-name":"cljs.core/assoc","signature":["[coll k v]","[coll k v & kvs]"],"description-html":"

assoc(iate)

\n

When applied to a map, returns a new map that contains the mapping of key(s) to\nval(s).

\n

Has no effect on the map type (hashed/sorted).

\n

When applied to a vector, returns a new vector that contains value v at index\nk.

\n","related":["cljs.core/assoc-in","cljs.core/dissoc","cljs.core/merge"]},"cljs.core/assoc-in":{"full-name":"cljs.core/assoc-in","signature":["[m [k & ks] v]"],"description-html":"

Associates a value in a nested associative structure, where ks is a sequence\nof keys and v is the new value. Returns a new nested structure.

\n

If any levels do not exist, hash-maps will be created.

\n","related":["cljs.core/assoc","cljs.core/update-in","cljs.core/dissoc-in","cljs.core/get-in"]},"cljs.core/associative?":{"full-name":"cljs.core/associative?","signature":["[coll]"],"description-html":"

Returns true if coll implements the IAssociative protocol, false otherwise.

\n

Maps and vectors are associative.

\n"},"cljs.core/atom":{"full-name":"cljs.core/atom","signature":["[x]","[x opts]"],"description-html":"

Creates and returns an atom with an initial value of x.

\n

opts is an optional map with optional keys :meta and :validator.

\n

:meta should be a metadata-map for the atom.

\n

:validator should be a validator function for the atom. See set-validator!\nfor more information.

\n","related":["cljs.core/atom","cljs.core/swap!","cljs.core/reset!","cljs.core/set-validator!","cljs.core/get-validator"]},"cljs.core/bit-and":{"full-name":"cljs.core/bit-and","signature":["[x y]","[x y & more]"],"description-html":"

Bitwise "and". Same as x & y in JavaScript.

\n","related":["cljs.core/bit-or"]},"cljs.core/bit-and-not":{"full-name":"cljs.core/bit-and-not","signature":["[x y]","[x y & more]"],"description-html":"

Bitwise "and" x with bitwise "not" y. Same as x & ~y in JavaScript.

\n","related":["cljs.core/bit-and","cljs.core/bit-not"]},"cljs.core/bit-clear":{"full-name":"cljs.core/bit-clear","signature":["[x n]"],"description-html":"

Clear bit at index n. Same as x & ~(1 << y) in JavaScript.

\n","related":["cljs.core/bit-set"]},"cljs.core/bit-flip":{"full-name":"cljs.core/bit-flip","signature":["[x n]"],"description-html":"

Flip bit at index n

\n"},"cljs.core/bit-not":{"full-name":"cljs.core/bit-not","signature":["[x]"],"description-html":"

Bitwise complement

\n"},"cljs.core/bit-or":{"full-name":"cljs.core/bit-or","signature":["[x y]"],"description-html":"

Bitwise or

\n","related":["cljs.core/bit-and","cljs.core/bit-xor"]},"cljs.core/bit-set":{"full-name":"cljs.core/bit-set","signature":["[x n]"],"description-html":"

Set bit at index n

\n","related":["cljs.core/bit-clear"]},"cljs.core/bit-shift-left":{"full-name":"cljs.core/bit-shift-left","signature":["[x n]"],"description-html":"

Bitwise shift left

\n","related":["cljs.core/bit-shift-right"]},"cljs.core/bit-shift-right":{"full-name":"cljs.core/bit-shift-right","signature":["[x n]"],"description-html":"

Bitwise shift right

\n","related":["cljs.core/bit-shift-left","cljs.core/unsigned-bit-shift-right"]},"cljs.core/bit-test":{"full-name":"cljs.core/bit-test","signature":["[x n]"],"description-html":"

Test bit at index n

\n"},"cljs.core/bit-xor":{"full-name":"cljs.core/bit-xor","signature":["[x y]"],"description-html":"

Bitwise exclusive or

\n","related":["cljs.core/bit-and","cljs.core/bit-or"]},"cljs.core/butlast":{"full-name":"cljs.core/butlast","signature":["[s]"],"description-html":"

Returns a sequence of all but the last item in s.

\n

butlast runs in linear time.

\n","related":["cljs.core/first","cljs.core/rest","cljs.core/last","cljs.core/next","cljs.core/drop-last","cljs.core/take-last"]},"cljs.core/case":{"full-name":"cljs.core/case","signature":["[e & clauses]"],"description-html":"

Takes an expression and a set of clauses. Each clause can take the form of\neither:

\n

test-constant result-expr

\n

(test-constant1 ... test-constantN) result-expr

\n

The test-constants are not evaluated. They must be compile-time literals, and\nneed not be quoted. If the expression is equal to a test-constant, the\ncorresponding result-expr is returned. A single default expression can follow\nthe clauses, and its value will be returned if no clause matches. If no default\nexpression is provided and no clause matches, an Error is thrown.

\n

Unlike cond and condp, case does a constant-time dispatch, the clauses are\nnot considered sequentially. All manner of constant expressions are acceptable\nin case, including numbers, strings, symbols, keywords, and ClojureScript\ncomposites thereof. Note that since lists are used to group multiple constants\nthat map to the same expression, a vector can be used to match a list if needed.\nThe test-constants need not be all of the same type.

\n","related":["cljs.core/cond","cljs.core/condp"],"type":"macro"},"cljs.core/catch":{"full-name":"cljs.core/catch","signature":["[exception-type name expr*]"],"description-html":"

catch should be used inside of a try expression.

\n

exception-type should be the type of exception thrown (usually js/Error or\njs/Object). When there is a match, the thrown exception will be bound to\nname inside of expr* and expr* will be evaluated and returned as the value\nof the try expression.

\n","related":["cljs.core/try","cljs.core/finally","cljs.core/throw"],"type":"special form"},"cljs.core/char":{"full-name":"cljs.core/char","signature":["[x]"],"description-html":"

Coerce to char

\n"},"cljs.core/clj->js":{"full-name":"cljs.core/clj->js","signature":["[x]"],"description-html":"

Recursively transforms ClojureScript values to JavaScript.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ClojureScriptJavaScript
Set#{}Array[]
Vector[]Array[]
List()Array[]
Keyword:fooString"foo"
SymbolbarString"bar"
Map{}Object{}
\n","related":["cljs.core/js->clj"]},"cljs.core/coll?":{"full-name":"cljs.core/coll?","signature":["[x]"],"description-html":"

Returns true if x is a collection, false otherwise.

\n

Lists, maps, sets, and vectors are collections.

\n","related":["cljs.core/seq?","cljs.core/list?","cljs.core/sequential?"]},"cljs.core/comp":{"full-name":"cljs.core/comp","signature":["[]","[f]","[f g]","[f g h]","[f1 f2 f3 & fs]"],"description-html":"

Takes a set of functions (fns) and returns a function that is the composition\nof those functions.

\n

The returned function takes a variable number of arguments, applies the\nrightmost of fns to the arguments, the next fn (right-to-left) to the\nresult, etc.

\n

((comp a b c) x y) => (a (b (c x y)))

\n","related":["cljs.core/partial","cljs.core/juxt"]},"cljs.core/compare":{"full-name":"cljs.core/compare","signature":["[x y]"],"description-html":"

Comparator.

\n

Returns a negative number, zero, or a positive number when x is logically\n"less than", "equal to", or "greater than" y.

\n

Uses IComparable if available and google.array.defaultCompare for objects of\nthe same type. nil is treated as a special case and is always less than any\nother object.

\n","related":["cljs.core/sort-by","cljs.core/sorted-set-by","cljs.core/sorted-map-by"]},"cljs.core/compare-and-set!":{"full-name":"cljs.core/compare-and-set!","signature":["[a oldval newval]"],"description-html":"

Atomically sets the value of atom a to newval if and only if the current\nvalue of the atom is identical to oldval.

\n

Returns true if set happened, false otherwise.

\n","related":["cljs.core/atom","cljs.core/reset!","cljs.core/swap!"]},"cljs.core/complement":{"full-name":"cljs.core/complement","signature":["[f]"],"description-html":"

Takes a function f and returns a function that takes the same arguments as\nf, has the same effects, if any, and returns the opposite truth value.

\n","related":["cljs.core/not"]},"cljs.core/concat":{"full-name":"cljs.core/concat","signature":["[]","[x]","[x y]","[x y & zs]"],"description-html":"

Returns a lazy sequence representing the concatenation of the elements in the\nsupplied collections.

\n","related":["cljs.core/conj","cljs.core/into"]},"cljs.core/cond":{"full-name":"cljs.core/cond","signature":["[& clauses]"],"description-html":"

clauses must be an even number of forms, ie: (cond t1 e1, t2 e2, t3 e3).\nEach test t is evaluated one at a time. If a test returns logical true, cond\nevaluates and returns the corresponding expression e and does not evaluate any\nof the other tests or expressions.

\n

It is idiomatic to provide a default case as the last test pair using the\nkeyword :else (a keyword always evaluates to logical true).

\n

(cond) returns nil.

\n","related":["cljs.core/condp","cljs.core/case","cljs.core/if"],"type":"macro"},"cljs.core/cond->":{"full-name":"cljs.core/cond->","signature":["[expr & clauses]"],"description-html":"

Takes an expression and a set of test/form pairs. Threads expr (via ->)\nthrough each form for which the corresponding test expression is true.

\n

Note that, unlike cond branching, cond-> threading does not short circuit\nafter the first true test expression.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/cond->>","cljs.core/cond"],"type":"macro"},"cljs.core/cond->>":{"full-name":"cljs.core/cond->>","signature":["[expr & clauses]"],"description-html":"

Takes an expression and a set of test/form pairs. Threads expr (via ->>)\nthrough each form for which the corresponding test expression is true.

\n

Note that, unlike cond branching, cond->> threading does not short circuit\nafter the first true test expression.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/cond->","cljs.core/cond"],"type":"macro"},"cljs.core/condp":{"full-name":"cljs.core/condp","signature":["[pred expr & clauses]"],"description-html":"

Takes a binary predicate, an expression, and a set of clauses. There are two\nkinds of clauses:

\n

Binary clause: test-expr result-expr

\n

Ternary clause: test-expr :>> result-fn
\n(Note: :>> is an ordinary keyword)

\n

For each clause, (pred test-expr expr) is evaluated. If it returns logical\ntrue, the clause is a match.

\n

If a binary clause matches, its result-expr is returned.

\n

If a ternary clause matches, its result-fn is called with the result of the\npredicate and returned by condp. result-fn should take one argument.

\n

A single default expression can follow the clauses, and its value will be\nreturned if no clause matches.

\n

If no default expression is provided and no clause matches, an Error is thrown.

\n","related":["cljs.core/cond","cljs.core/if"],"type":"macro"},"cljs.core/conj":{"full-name":"cljs.core/conj","signature":["[]","[coll]","[coll x]","[coll x & xs]"],"description-html":"

conj(oin)

\n

Returns a new collection with the xs "added" to coll.

\n

conj adds items to the end of a vector, the beginning of a list, and into a\nset.

\n

conj works with maps by merging and also supports vector pairs with two\nelements.

\n

Multiple xs are added in order, as if called one at a time.

\n

(conj nil item) returns (item).

\n","related":["cljs.core/cons","cljs.core/into","cljs.core/merge","cljs.core/peek","cljs.core/pop"]},"cljs.core/cons":{"full-name":"cljs.core/cons","signature":["[x coll]"],"description-html":"

Returns a new sequence where x is the first element and coll is the rest.

\n","related":["cljs.core/conj"]},"cljs.core/constantly":{"full-name":"cljs.core/constantly","signature":["[x]"],"description-html":"

Returns a function that takes any number of arguments and always returns x.

\n","related":["cljs.core/repeatedly"]},"cljs.core/contains?":{"full-name":"cljs.core/contains?","signature":["[coll k]"],"description-html":"

Returns true if k is present in coll, otherwise returns false.

\n

Note that for numerically indexed collections like vectors and arrays, this\ntests if the numeric key is within the range of indexes.

\n

contains? operates in constant or logarithmic time; it will not perform a\nlinear search for a value.

\n","related":["cljs.core/some","cljs.core/get"]},"cljs.core/count":{"full-name":"cljs.core/count","signature":["[x]"],"description-html":"

Returns the number of items in x.

\n

count works on arrays, lists, maps, sets, strings, and vectors.

\n

(count nil) returns 0.

\n"},"cljs.core/counted?":{"full-name":"cljs.core/counted?","signature":["[x]"],"description-html":"

Returns true if x executes count in constant time, false otherwise.

\n

Lists, maps, sets, strings, and vectors can be counted in constant time.

\n"},"cljs.core/cycle":{"full-name":"cljs.core/cycle","signature":["[coll]"],"description-html":"

Returns an infinite lazy sequence of repetitions of the items in coll.

\n","related":["cljs.core/lazy-seq","cljs.core/repeatedly"]},"cljs.core/dec":{"full-name":"cljs.core/dec","signature":["[x]"],"description-html":"

Returns a number one less than x.

\n","related":["cljs.core/inc"]},"cljs.core/declare":{"full-name":"cljs.core/declare","signature":["[& names]"],"description-html":"

Uses def to establish symbols of names with no bindings.

\n

Useful for making forward declarations.

\n","related":["cljs.core/def"],"type":"macro"},"cljs.core/def":{"full-name":"cljs.core/def","signature":["[symbol]","[symbol init]","[symbol doc-string init]"],"description-html":"

Creates a global variable with the name of symbol and a namespace of the\ncurrent namespace.

\n

If init is supplied, it is evaluated and the result is assigned to symbol.

\n

doc-string is an optional documentation string.

\n

def is one of ClojureScript's special forms\nand is used by many macros to define common elements (ie: defn, defmacro,\netc).

\n","related":["cljs.core/defn","cljs.core/fn","cljs.core/defmacro","cljs.core/defmulti"],"type":"special form"},"cljs.core/defn":{"full-name":"cljs.core/defn","signature":["[name doc-string? attr-map? [params*] prepost-map? body]","[name doc-string? attr-map? ([params*] prepost-map? body) + attr-map?]"],"description-html":"

Defines a function.

\n

doc-string? is an optional documentation string.

\n

attr-map? is an optional map of metadata to\nattach to the global variable name.

\n

prepost-map? is an optional map with optional keys :pre and :post that\ncontain collections of pre or post conditions\nfor the function.

\n\n \n \n \n \n \n \n \n
CodeExpands To
\n(defn foo [a b c]\n  (* a b c))
\n(def foo\n  (fn [a b c]\n    (* a b c)))
","related":["cljs.core/def","cljs.core/defn-","cljs.core/defmacro","cljs.core/fn"],"type":"macro"},"cljs.core/defn-":{"full-name":"cljs.core/defn-","signature":["[name & decls]"],"description-html":"

Same as defn, but adds {:private true} metadata to the definition.

\n

Note: :private metadata is not currently enforced by the ClojureScript\ncompiler.

\n","related":["cljs.core/defn"],"type":"macro"},"cljs.core/deref":{"full-name":"cljs.core/deref","signature":["[x]"],"description-html":"

Returns the current value of atom x.

\n

The @ reader macro is often used instead of deref. @foo is the same thing\nas (deref foo).

\n","related":["cljs.core/atom"]},"cljs.core/disj":{"full-name":"cljs.core/disj","signature":["[coll]","[coll k]","[coll k & ks]"],"description-html":"

disj(oin). Returns a new set of the same (hashed/sorted) type, that does not\ncontain key(s).

\n","related":["cljs.core/dissoc","cljs.core/disj!","clojure.set/difference"]},"cljs.core/dissoc":{"full-name":"cljs.core/dissoc","signature":["[coll]","[coll k]","[coll k & ks]"],"description-html":"

dissoc(iate)

\n

Returns a new map that does not contain a mapping for key(s).

\n

Has no effect on the map type (hashed/sorted).

\n","related":["cljs.core/assoc","cljs.core/dissoc-in","cljs.core/disj","cljs.core/select-keys"]},"cljs.core/distinct":{"full-name":"cljs.core/distinct","signature":["[coll]"],"description-html":"

Returns a lazy sequence of the elements of coll with duplicates removed.

\n","related":["cljs.core/distinct?"]},"cljs.core/distinct?":{"full-name":"cljs.core/distinct?","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if no two of the arguments are =

\n","related":["cljs.core/distinct"]},"cljs.core/doall":{"full-name":"cljs.core/doall","signature":["[coll]","[n coll]"],"description-html":"

Forces evaluation of a lazy sequence. Often used to see the effects of a\nsequence produced via functions that have side effects.

\n

doall walks through the successive nexts of the sequence, returning the head\nand causing the entire sequence to reside in memory at one time.

\n","related":["cljs.core/dorun","cljs.core/doseq"]},"cljs.core/dorun":{"full-name":"cljs.core/dorun","signature":["[coll]","[n coll]"],"description-html":"

Forces evaluation of a lazy sequence. Often used to see the effects of a\nsequence produced via functions that have side effects.

\n

dorun walks through the successive nexts of the sequence and returns nil.

\n","related":["cljs.core/doall"]},"cljs.core/doseq":{"full-name":"cljs.core/doseq","signature":["[seq-exprs & body]"],"description-html":"

Repeatedly executes body (presumably for side-effects) with bindings and\nfiltering as provided by for. Does not retain the head of the sequence.

\n

Returns nil.

\n","related":["cljs.core/doall","cljs.core/dorun","cljs.core/for","cljs.core/dotimes"],"type":"macro"},"cljs.core/dotimes":{"full-name":"cljs.core/dotimes","signature":["[[name n] & body]"],"description-html":"

Repeatedly executes body (presumably for side-effects) with name bound to\nintegers from 0 through n-1.

\n","related":["cljs.core/repeat","cljs.core/for","cljs.core/doseq"],"type":"macro"},"cljs.core/drop":{"full-name":"cljs.core/drop","signature":["[n]","[n coll]"],"description-html":"

Returns a lazy sequence of all but the first n items in coll.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/take","cljs.core/drop-last","cljs.core/drop-while","cljs.core/nthnext","cljs.core/nthrest"]},"cljs.core/drop-last":{"full-name":"cljs.core/drop-last","signature":["[s]","[n s]"],"description-html":"

Return a lazy sequence of all but the last n items in s.

\n

n defaults to 1.

\n","related":["cljs.core/drop","cljs.core/drop-while"]},"cljs.core/drop-while":{"full-name":"cljs.core/drop-while","signature":["[pred]","[pred coll]"],"description-html":"

Returns a lazy sequence of the items in coll starting from the first item for\nwhich (pred item) returns logical false.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/take-while","cljs.core/split-with"]},"cljs.core/empty":{"full-name":"cljs.core/empty","signature":["[coll]"],"description-html":"

Returns an empty collection of the same category as coll.

\n

Returns nil if coll is nil.

\n","related":["cljs.core/not-empty"]},"cljs.core/empty?":{"full-name":"cljs.core/empty?","signature":["[coll]"],"description-html":"

Returns true if coll has no items - same as (not (seq coll)).

\n

Please use the idiom (seq x) rather than (not (empty? x)).

\n","related":["cljs.core/seq"]},"cljs.core/even?":{"full-name":"cljs.core/even?","signature":["[n]"],"description-html":"

Returns true if n is an even number.

\n

Throws an exception if n is not an integer.

\n","related":["cljs.core/odd?"]},"cljs.core/every-pred":{"full-name":"cljs.core/every-pred","signature":["[p]","[p1 p2]","[p1 p2 p3]","[p1 p2 p3 & ps]"],"description-html":"

Takes a set of predicate functions and returns a function f that returns true\nif all of its composing predicates return a logical true value against all of\nits arguments, else it returns false.

\n

Note that f is short-circuiting in that it will stop execution on the first\nargument that triggers a logical false result against the original predicates.

\n","related":["cljs.core/some-fn","cljs.core/and"]},"cljs.core/every?":{"full-name":"cljs.core/every?","signature":["[pred coll]"],"description-html":"

Returns true if (pred x) is logical true for every x in coll, else false.

\n","related":["cljs.core/some","cljs.core/not-any?"]},"cljs.core/false?":{"full-name":"cljs.core/false?","signature":["[x]"],"description-html":"

Returns true if x is the value false, false otherwise.

\n","related":["cljs.core/true?","cljs.core/not"]},"cljs.core/ffirst":{"full-name":"cljs.core/ffirst","signature":["[coll]"],"description-html":"

Same as (first (first coll)).

\n","related":["cljs.core/first","cljs.core/fnext","cljs.core/nfirst"]},"cljs.core/filter":{"full-name":"cljs.core/filter","signature":["[f]","[f coll]"],"description-html":"

Returns a lazy sequence of the non-nil results of (f item). Note, this means\nfalse return values will be included.

\n

f must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/remove","cljs.core/keep"]},"cljs.core/filterv":{"full-name":"cljs.core/filterv","signature":["[pred coll]"],"description-html":"

Returns a vector of the items in coll for which (pred item) returns true.

\n

pred must be free of side-effects.

\n"},"cljs.core/finally":{"full-name":"cljs.core/finally","signature":["[expr*]"],"description-html":"

finally should be the last form inside of a try expression. It is optional.

\n

finally clauses are always evaluated for their side effects whether there was\nan error or not, but they are never the return value of a try expression.

\n","related":["cljs.core/try","cljs.core/catch","cljs.core/throw"],"type":"special form"},"cljs.core/find":{"full-name":"cljs.core/find","signature":["[coll k]"],"description-html":"

Returns the map entry for key k, or nil if k is not found.

\n","related":["cljs.core/get","cljs.core/get-in"]},"cljs.core/first":{"full-name":"cljs.core/first","signature":["[coll]"],"description-html":"

Returns the first item in coll and calls seq on its argument.

\n

Returns nil when coll is nil.

\n","related":["cljs.core/rest","cljs.core/next","cljs.core/nth","cljs.core/second","cljs.core/take","cljs.core/ffirst"]},"cljs.core/flatten":{"full-name":"cljs.core/flatten","signature":["[x]"],"description-html":"

Takes any nested combination of sequential things (lists, vectors, etc.) and\nreturns their contents as a single, flat sequence.

\n

(flatten nil) returns nil.

\n"},"cljs.core/fn":{"full-name":"cljs.core/fn","signature":["[name? [params*] prepost-map? body]","[name? ([params*] prepost-map? body)+]"],"description-html":"

Defines a function.

\n

name? is an optional name of the function to be used inside body. This is\nuseful for recursive calls. Note that name? in fn is not the same as the\nname argument to defn, which defines a global symbol for the function.

\n

params* are the arguments to the function and a binding form for the symbols\nthat the arguments will take inside the body of the function. Functions can have\narity of 0-20 and there is no runtime enforcement of arity when calling a\nfunction (just like in JavaScript).

\n

prepost-map? is an optional map with optional keys :pre and :post that\ncontain collections of pre or post conditions\nfor the function.

\n

body is a series of expressions that execute when the function is called. The\narguments to the function are mapped to symbols in params* and are available\nin body. The value of the last expression in body is the return value of\ncalling the function.

\n","related":["cljs.core/defn","cljs.core/defn-"],"type":"special form"},"cljs.core/fn?":{"full-name":"cljs.core/fn?","signature":["[f]"],"description-html":"

Returns true if f is a function, false otherwise.

\n","related":["cljs.core/ifn?"]},"cljs.core/fnext":{"full-name":"cljs.core/fnext","signature":["[coll]"],"description-html":"

Same as (first (next coll))

\n","related":["cljs.core/ffirst","cljs.core/second"]},"cljs.core/fnil":{"full-name":"cljs.core/fnil","signature":["[f x]","[f x y]","[f x y z]"],"description-html":"

Takes a function f, and returns a function that calls f, replacing a nil\nfirst argument to f with the supplied value x. Higher arity versions can\nreplace arguments in the second and third positions (y, z).

\n

Note that the function f can take any number of arguments, not just the one(s)\nbeing nil-patched.

\n"},"cljs.core/for":{"full-name":"cljs.core/for","signature":["[seq-exprs body-expr]"],"description-html":"

List comprehension.

\n

Takes a vector of one or more binding-form/collection-expr pairs, each followed\nby zero or more modifiers, and yields a lazy sequence of evaluations of expr.

\n

Collections are iterated in a nested fashion, rightmost fastest, and nested\ncoll-exprs can refer to bindings created in prior binding-forms. Supported\nmodifiers are: :let [binding-form expr ...], :while test, :when test.

\n","related":["cljs.core/doseq","cljs.core/doall","cljs.core/recur"],"type":"macro"},"cljs.core/frequencies":{"full-name":"cljs.core/frequencies","signature":["[coll]"],"description-html":"

Returns a map from distinct items in coll to the number of times they appear.

\n

(frequencies [:a :a :b]) => {:a 2, :b 1}

\n","related":["cljs.core/group-by","cljs.core/distinct"]},"cljs.core/get":{"full-name":"cljs.core/get","signature":["[o k]","[o k not-found]"],"description-html":"

Returns the value mapped to key k.

\n

Returns not-found or nil if k is not present in o.

\n","related":["cljs.core/get-in"]},"cljs.core/get-in":{"full-name":"cljs.core/get-in","signature":["[m ks]","[m ks not-found]"],"description-html":"

Returns the value in a nested associative structure, where ks is a sequence of\nkeys.

\n

Returns nil if the key is not found, or not-found if supplied.

\n","related":["cljs.core/assoc-in","cljs.core/update-in","cljs.core/find","cljs.core/get"]},"cljs.core/get-validator":{"full-name":"cljs.core/get-validator","signature":["[a]"],"description-html":"

Returns the validator function for atom a.

\n","related":["cljs.core/atom","cljs.core/set-validator!"]},"cljs.core/group-by":{"full-name":"cljs.core/group-by","signature":["[f coll]"],"description-html":"

Returns a map of the elements of coll keyed by the result of running f on\neach element.

\n

The value at each key will be a vector of the corresponding elements in the\norder they appeared in coll.

\n","related":["cljs.core/partition-by","cljs.core/frequencies"]},"cljs.core/hash-map":{"full-name":"cljs.core/hash-map","signature":["[& keyvals]"],"description-html":"

Returns a new hash map with supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/array-map","cljs.core/sorted-map"]},"cljs.core/hash-set":{"full-name":"cljs.core/hash-set","signature":["[]","[& keys]"],"description-html":"

Returns a new hash set with supplied keys.

\n

Any equal keys are handled as if by repeated uses of conj.

\n","related":["cljs.core/set","cljs.core/sorted-set"]},"cljs.core/identical?":{"full-name":"cljs.core/identical?","signature":["[x y]"],"description-html":"

Returns true if x and y are the same object, false otherwise.

\n","related":["cljs.core/=","cljs.core/=="]},"cljs.core/identity":{"full-name":"cljs.core/identity","signature":["[x]"],"description-html":"

Returns its argument.

\n","related":["cljs.core/nil?"]},"cljs.core/if":{"full-name":"cljs.core/if","signature":["[test then else?]"],"description-html":"

If test is not false or nil, then is evaluated and returned. Otherwise,\nelse? is evaluated and returned. else? defaults to nil if not provided.

\n

if is one of ClojureScript's special forms\nand is a fundamental building block of the language. All other conditionals in\nClojureScript are based on ifs notion of truthiness (ie: anything other than\nfalse or nil).

\n","related":["cljs.core/cond","cljs.core/when","cljs.core/if-let","cljs.core/if-not"],"type":"special form"},"cljs.core/if-let":{"full-name":"cljs.core/if-let","signature":["[[x test] then]","[[x test] then else]"],"description-html":"

When test is logical true, evaluates then with the value of test bound to\nx. Otherwise, evaluates else with no bindings.

\n

else defaults to nil.

\n","related":["cljs.core/when-let","cljs.core/if"],"type":"macro"},"cljs.core/if-not":{"full-name":"cljs.core/if-not","signature":["[test then]","[test then else]"],"description-html":"

If test is false or nil, evaluates and returns then. Otherwise, evaluates\nand returns else. else defaults to nil if not provided.

\n","related":["cljs.core/if","cljs.core/when-not"],"type":"macro"},"cljs.core/if-some":{"full-name":"cljs.core/if-some","signature":["[[x test] then]","[[x test] then else]"],"description-html":"

If test is not nil, evaluates then with x bound to the value of test. If\nnot, yields else.

\n","related":["cljs.core/when-some"],"type":"macro"},"cljs.core/ifn?":{"full-name":"cljs.core/ifn?","signature":["[f]"],"description-html":"

Returns true if f implements the IFn protocol, false otherwise.

\n

Functions, keywords, map, sets, and vectors can be called as functions.

\n","related":["cljs.core/fn?"]},"cljs.core/inc":{"full-name":"cljs.core/inc","signature":["[x]"],"description-html":"

Returns a number one greater than x.

\n","related":["cljs.core/dec"]},"cljs.core/instance?":{"full-name":"cljs.core/instance?","signature":["[t o]"],"description-html":"

Returns true if o is an instance of type t, false otherwise.

\n","related":["cljs.core/type"]},"cljs.core/int":{"full-name":"cljs.core/int","signature":["[x]"],"description-html":"

Coerces x to an integer by stripping decimal places.

\n","related":["cljs.core/char","cljs.core/integer?"]},"cljs.core/integer?":{"full-name":"cljs.core/integer?","signature":["[n]"],"description-html":"

Returns true if n is an integer, false otherwise.

\n","related":["cljs.core/int"]},"cljs.core/interleave":{"full-name":"cljs.core/interleave","signature":["[c1 c2]","[c1 c2 & colls]"],"description-html":"

Returns a lazy seq of the first item in each collection, then the second items,\nthen the third, etc.

\n","related":["cljs.core/interpose","cljs.core/zipmap"]},"cljs.core/interpose":{"full-name":"cljs.core/interpose","signature":["[sep coll]"],"description-html":"

Returns a lazy seq of the elements of coll separated by sep.

\n","related":["cljs.core/interleave","clojure.string/join"]},"cljs.core/into":{"full-name":"cljs.core/into","signature":["[to from]","[to xform from]"],"description-html":"

Returns a new collection consisting of to with all of the items of from\n"added" using conj.

\n

A transducer may be supplied as xform.

\n","related":["cljs.core/conj"]},"cljs.core/into-array":{"full-name":"cljs.core/into-array","signature":["[aseq]"],"description-html":"

Returns a new JavaScript array from the elements of aseq.

\n","related":["cljs.core/to-array","cljs.core/make-array"]},"cljs.core/iterate":{"full-name":"cljs.core/iterate","signature":["[f x]"],"description-html":"

Returns a lazy sequence of x, (f x), (f (f x)) etc.

\n

f must be free of side-effects.

\n","related":["cljs.core/cycle","cljs.core/repeatedly","cljs.core/repeat"]},"cljs.core/js->clj":{"full-name":"cljs.core/js->clj","signature":["[x]","[x & opts]"],"description-html":"

Recursively transforms JavaScript arrays into ClojureScript vectors, and\nJavaScript objects into ClojureScript maps.

\n

Pass options :keywordize-keys true to recursively convert object property\nnames from strings to keywords.

\n

(js->clj js-data :keywordize-keys true)

\n

Note that js->clj is not optimized for speed and the transit.cljs library is\nrecommended when parsing large amounts of JSON data.

\n","related":["cljs.core/clj->js"]},"cljs.core/js-delete":{"full-name":"cljs.core/js-delete","signature":["[obj key]"],"description-html":"

Deletes property key in JavaScript object obj.

\n

Uses the JavaScript delete operator.

\n","related":["cljs.core/dissoc"]},"cljs.core/js-obj":{"full-name":"cljs.core/js-obj","signature":["[& keyvals]"],"description-html":"

Returns a new JavaScript object using the supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/array"]},"cljs.core/juxt":{"full-name":"cljs.core/juxt","signature":["[f]","[f g]","[f g h]","[f g h & fs]"],"description-html":"

Takes a set of functions and returns a function that is the juxtaposition of\nthose functions.

\n

The returned function takes a variable number of arguments, and returns a vector\ncontaining the result of applying each function to the arguments (left-to-\nright).

\n

((juxt a b c) x) => [(a x) (b x) (c x)]

\n","related":["cljs.core/partial","cljs.core/comp"]},"cljs.core/keep":{"full-name":"cljs.core/keep","signature":["[f]","[f coll]"],"description-html":"

Returns a lazy sequence of the non-nil results of (f item). Note, this means\nfalse return values will be included.

\n

f must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/keep-indexed","cljs.core/map","cljs.core/filter"]},"cljs.core/keep-indexed":{"full-name":"cljs.core/keep-indexed","signature":["[f]","[f coll]"],"description-html":"

Returns a lazy sequence of the non-nil results of (f index item). Note, this\nmeans false return values will be included.

\n

`f must be free of side-effects.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/map-indexed","cljs.core/keep"]},"cljs.core/key":{"full-name":"cljs.core/key","signature":["[map-entry]"],"description-html":"

Returns the key of the map entry.

\n","related":["cljs.core/keys"]},"cljs.core/keys":{"full-name":"cljs.core/keys","signature":["[hash-map]"],"description-html":"

Returns a sequence of the keys in hash-map.

\n","related":["cljs.core/vals"]},"cljs.core/last":{"full-name":"cljs.core/last","signature":["[coll]"],"description-html":"

Returns the last item in coll in linear time.

\n

peek is much faster than last for a vector.

\n","related":["cljs.core/first","cljs.core/next","cljs.core/rest","cljs.core/butlast","cljs.core/take-last"]},"cljs.core/lazy-cat":{"full-name":"cljs.core/lazy-cat","signature":["[& colls]"],"description-html":"

Expands to code which yields a lazy sequence of the concatenation of the\nsupplied collections. Each collections expression is not evaluated until it is\nneeded.

\n\n \n \n \n \n \n \n
CodeExpands To
(lazy-cat x y z)\n
\n(concat (lazy-seq x)\n        (lazy-seq y)\n        (lazy-seq z))
","related":["cljs.core/lazy-seq","cljs.core/concat"],"type":"macro"},"cljs.core/lazy-seq":{"full-name":"cljs.core/lazy-seq","signature":["[& body]"],"description-html":"

Returns a new lazy sequence.

\n","related":["cljs.core/lazy-cat","cljs.core/realized?","cljs.core/doall","cljs.core/iterate"]},"cljs.core/let":{"full-name":"cljs.core/let","signature":["[bindings & body]"],"description-html":"

Binds expressions to symbols and makes those symbols available only within\nbody.

\n

bindings should be a vector with an even number of forms, ie: [a1 b1, a2 b2,\na3 b3]. The first item in a pair (the as) should be a symbol that is assigned\nthe evaluation of the second item (the bs). These symbols (the as) are then\navailable within body (and not outside of body).

\n

Another way to think about this is that the binding symbols in let are like\nlocal defs that are only available within let's scope.

\n

In addition to direct symbol binding, let supports a destructuring syntax to\n"break apart" collections into multiple symbols. This destructuring syntax is\nlike it's own mini-language and allows for succinct code.

\n

let is one of ClojureScript's special forms and is a fundamental building\nblock of the language. Many macros rely on lets binding syntax and scope\nrules.

\n","related":["cljs.core/letfn","cljs.core/if-let"],"type":"special form"},"cljs.core/letfn":{"full-name":"cljs.core/letfn","signature":["[fnspecs & body]"],"description-html":"

Takes a vector of function definitions fnspecs and binds the functions to\ntheir names. All of the names are available in all of the definitions of the\nfunctions as well as body.

\n

fnspecs must be a vector with an even number of forms. See let.

\n

letfn is one of ClojureScript's special forms.

\n","related":["cljs.core/let"],"type":"special form"},"cljs.core/list":{"full-name":"cljs.core/list","signature":["[& items]"],"description-html":"

Creates a new list containing items.

\n","related":["cljs.core/vector","cljs.core/list?"]},"cljs.core/list*":{"full-name":"cljs.core/list*","signature":["[args]","[a args]","[a b args]","[a b c args]","[a b c d & more]"],"description-html":"

Creates a new list containing the items prepended to the rest, the last of which\nwill be treated as a sequence.

\n","related":["cljs.core/list"]},"cljs.core/list?":{"full-name":"cljs.core/list?","signature":["[x]"],"description-html":"

Returns true if x is a list, false otherwise.

\n","related":["cljs.core/seq?","cljs.core/sequential?","cljs.core/coll?"]},"cljs.core/make-array":{"full-name":"cljs.core/make-array","signature":["[size]"],"description-html":"

Creates an empty JavaScript array of size size.

\n","related":["cljs.core/aclone","cljs.core/array"]},"cljs.core/map":{"full-name":"cljs.core/map","signature":["[f]","[f coll]","[f c1 c2]","[f c1 c2 c3]","[f c1 c2 c3 & colls]"],"description-html":"

Returns a lazy sequence of applying function f to every element of coll.

\n

When more than one collection is provided, returns a lazy sequence consisting of\nthe result of applying f to the set of first items of each c, followed by\napplying f to the set of second items in each c, until any one of the cs\nis exhausted. Any remaining items in other cs are ignored. Function f should\naccept number-of-cs arguments.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/map-indexed","cljs.core/pmap","cljs.core/amap","cljs.core/mapcat","cljs.core/keep","cljs.core/juxt"]},"cljs.core/map-indexed":{"full-name":"cljs.core/map-indexed","signature":["[f coll]"],"description-html":"

Returns a lazy sequence consisting of the result of applying f to 0 and the\nfirst item of coll, followed by applying f to 1 and the second item in\ncoll, etc, until coll is exhausted.

\n

Function f should accept 2 arguments, index and item.

\n","related":["cljs.core/map","cljs.core/keep-indexed"]},"cljs.core/map?":{"full-name":"cljs.core/map?","signature":["[x]"],"description-html":"

Returns true if x is a map, false otherwise.

\n","related":["cljs.core/hash-map","cljs.core/sorted-map"]},"cljs.core/mapcat":{"full-name":"cljs.core/mapcat","signature":["[f]","[f & colls]"],"description-html":"

Returns the result of applying concat to the result of applying map to f\nand colls.

\n

Function f should return a collection.

\n

Returns a transducer when no collections are provided.

\n","related":["cljs.core/map","cljs.core/concat"]},"cljs.core/mapv":{"full-name":"cljs.core/mapv","signature":["[f coll]","[f c1 c2]","[f c1 c2 c3]","[f c1 c2 c3 & colls]"],"description-html":"

Returns a vector consisting of the result of applying f to the set of first\nitems of each coll, followed by applying f to the set of second items in each\ncoll, until any one of the colls is exhausted. Any remaining items in other\ncolls are ignored.

\n

Function f should accept number-of-colls arguments.

\n","related":["cljs.core/map"]},"cljs.core/max":{"full-name":"cljs.core/max","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns the greatest number argument.

\n","related":["cljs.core/min","cljs.core/max-key"]},"cljs.core/max-key":{"full-name":"cljs.core/max-key","signature":["[k x]","[k x y]","[k x y & more]"],"description-html":"

Returns the x for which (k x) is greatest.

\n

(k x) should return a number.

\n","related":["cljs.core/max","cljs.core/min-key"]},"cljs.core/memoize":{"full-name":"cljs.core/memoize","signature":["[f]"],"description-html":"

Returns a memoized version of a referentially transparent function.

\n

A memoized version of a function keeps a cache of the mappings from arguments to\nresults in memory. When calls with the same arguments are repeated often, a\nmemoized function has higher performance at the expense of higher memory usage.

\n"},"cljs.core/merge":{"full-name":"cljs.core/merge","signature":["[& maps]"],"description-html":"

Returns a map that consists of the rest of the maps conj-ed onto the first.

\n

If a key occurs in more than one map, the mapping from the rightmost map will\n"win".

\n","related":["cljs.core/merge-with","cljs.core/hash-map"]},"cljs.core/merge-with":{"full-name":"cljs.core/merge-with","signature":["[f & maps]"],"description-html":"

Returns a map that consists of the rest of the maps conj-ed onto the first.

\n

If a key occurs in more than one map, the mapping(s) from the latter (left-to-\nright) will be combined with the mapping in the result by calling (f val-in-\nresult val-in-latter).

\n","related":["cljs.core/merge"]},"cljs.core/min":{"full-name":"cljs.core/min","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns the least number argument.

\n","related":["cljs.core/max","cljs.core/min-key"]},"cljs.core/min-key":{"full-name":"cljs.core/min-key","signature":["[k x]","[k x y]","[k x y & more]"],"description-html":"

Returns the x for which (k x) is least.

\n

(k x) should return a number.

\n","related":["cljs.core/min","cljs.core/max-key"]},"cljs.core/mod":{"full-name":"cljs.core/mod","signature":["[n d]"],"description-html":"

Returns the modulus of dividing numerator n by denominator d.

\n

Returns NaN when d is 0 (divide by 0 error).

\n

Truncates toward negative infinity.

\n","related":["cljs.core/rem"]},"cljs.core/name":{"full-name":"cljs.core/name","signature":["[x]"],"description-html":"

Returns a string value of a keyword, string, or symbol.

\n

(name :foo) => "foo"

\n

(name "foo") => "foo"

\n

(name 'foo) => "foo"

\n"},"cljs.core/neg?":{"full-name":"cljs.core/neg?","signature":["[n]"],"description-html":"

Returns true if n is less than 0, false otherwise.

\n","related":["cljs.core/pos?","cljs.core/zero?"]},"cljs.core/next":{"full-name":"cljs.core/next","signature":["[coll]"],"description-html":"

Returns a sequence of the items after the first and calls seq on its argument.

\n

Returns nil if coll is empty.

\n","related":["cljs.core/rest","cljs.core/first","cljs.core/fnext"]},"cljs.core/nfirst":{"full-name":"cljs.core/nfirst","signature":["[coll]"],"description-html":"

Same as (next (first coll)).

\n","related":["cljs.core/next"]},"cljs.core/nil?":{"full-name":"cljs.core/nil?","signature":["[x]"],"description-html":"

Returns true if x is nil, false otherwise.

\n","related":["cljs.core/true?","cljs.core/false?","cljs.core/identity"]},"cljs.core/nnext":{"full-name":"cljs.core/nnext","signature":["[coll]"],"description-html":"

Same as (next (next coll)).

\n","related":["cljs.core/next"]},"cljs.core/not":{"full-name":"cljs.core/not","signature":["[x]"],"description-html":"

Returns true if x is logical false, false otherwise.

\n","related":["cljs.core/complement","cljs.core/false?"]},"cljs.core/not-any?":{"full-name":"cljs.core/not-any?","signature":["[pred coll]"],"description-html":"

Returns false if (pred x) is logical true for any x in coll, else true.

\n","related":["cljs.core/every?","cljs.core/some"]},"cljs.core/not-empty":{"full-name":"cljs.core/not-empty","signature":["[coll]"],"description-html":"

Returns nil if coll is empty, else returns coll.

\n","related":["cljs.core/empty"]},"cljs.core/not-every?":{"full-name":"cljs.core/not-every?","signature":["[pred coll]"],"description-html":"

Returns false if (pred x) is logical true for every x in coll, else true.

\n","related":["cljs.core/every?","cljs.core/not-any?","cljs.core/some"]},"cljs.core/not=":{"full-name":"cljs.core/not=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns the opposite of =.

\n

Same as (not (= x y))

\n","related":["cljs.core/=","cljs.core/not"]},"cljs.core/ns":{"full-name":"cljs.core/ns","signature":["[name & references]"],"description-html":"

Sets the namespace of the file.

\n

ns must be the first form in a .cljs file and there can only be one ns\ndeclaration per file. Namespaces must match the file name of their respective\n.cljs files, with the exception that dashes in namespaces become underscores\nin filenames. Thus, (ns foo.bar-biz.baz) should be the first form in file\nfoo/bar_biz/baz.cljs.

\n

references can be zero or more forms used to import other namespaces, symbols,\nand libraries into the current namespace.

\n","type":"special form"},"cljs.core/nth":{"full-name":"cljs.core/nth","signature":["[coll n]","[coll n not-found]"],"description-html":"

Returns the value at index n or not-found if the index is out of bounds.

\n

nth will throw an exception if n is out of bounds and not-found is not\nsupplied.

\n

nth works for Strings, Arrays, Regex Matchers, Lists, and Sequences. For\nSequences, nth takes O(n) time.

\n","related":["cljs.core/first","cljs.core/second","cljs.core/nthnext","cljs.core/get"]},"cljs.core/nthnext":{"full-name":"cljs.core/nthnext","signature":["[coll n]"],"description-html":"

Returns the nth next of coll.

\n

Returns (seq coll) when n is 0.

\n","related":["cljs.core/nth","cljs.core/drop","cljs.core/nthrest"]},"cljs.core/nthrest":{"full-name":"cljs.core/nthrest","signature":["[coll n]"],"description-html":"

Returns the nth rest of coll.

\n

Returns coll when n is 0.

\n","related":["cljs.core/drop","cljs.core/nthnext","cljs.core/nth"]},"cljs.core/number?":{"full-name":"cljs.core/number?","signature":["[n]"],"description-html":"

Returns true if n is a number, false otherwise.

\n","related":["cljs.core/integer?"]},"cljs.core/object?":{"full-name":"cljs.core/object?","signature":["[x]"],"description-html":"

Returns true if x is a JavaScript object, false otherwise.

\n","related":["cljs.core/array?"]},"cljs.core/odd?":{"full-name":"cljs.core/odd?","signature":["[n]"],"description-html":"

Returns true if n is an odd number.

\n

Throws an exception if n is not an integer.

\n","related":["cljs.core/even?"]},"cljs.core/or":{"full-name":"cljs.core/or","signature":["[]","[x]","[x & next]"],"description-html":"

Evaluates arguments one at a time from left to right. If an argument returns\nlogical true, or returns that value and doesn't evaluate any of the other\narguments, otherwise it returns the value of the last argument.

\n

(or) returns nil.

\n","related":["cljs.core/and","cljs.core/if"],"type":"macro"},"cljs.core/partial":{"full-name":"cljs.core/partial","signature":["[f]","[f arg1]","[f arg1 arg2]","[f arg1 arg2 arg3]","[f arg1 arg2 arg3 & more]"],"description-html":"

Takes a function f and fewer than the normal arguments to f. Returns a\nfunction that takes a variable number of additional arguments. When called, the\nreturned function calls f with the original arguments plus the additional\narguments.

\n

((partial f a b) c d) => (f a b c d)

\n","related":["cljs.core/comp","cljs.core/juxt"]},"cljs.core/partition":{"full-name":"cljs.core/partition","signature":["[n coll]","[n step coll]","[n step pad coll]"],"description-html":"

Returns a lazy sequence of lists of n items each, at offsets step apart.

\n

If step is not supplied, defaults to n, i.e. the partitions do not overlap.

\n

If a pad collection is supplied, its elements will be used as necessary to\ncomplete the last partition up to n items.

\n

Returns a partition with less than n items if there are not enough padding\nelements.

\n","related":["cljs.core/partition-all","cljs.core/split-at","cljs.core/partition-by"]},"cljs.core/partition-all":{"full-name":"cljs.core/partition-all","signature":["[n]","[n coll]","[n step coll]"],"description-html":"

Returns a lazy sequence of lists like partition, but may include partitions\nwith fewer than n items at the end.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/partition","cljs.core/partition-by"]},"cljs.core/partition-by":{"full-name":"cljs.core/partition-by","signature":["[f]","[f coll]"],"description-html":"

Applies f to each value in coll, splitting it each time f returns a new\nvalue. Returns a lazy sequence of partitions.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/partition","cljs.core/partition-all","cljs.core/group-by"]},"cljs.core/peek":{"full-name":"cljs.core/peek","signature":["[coll]"],"description-html":"

Returns the first element of a list; same as first.

\n

Returns the last element of a vector, and much more efficient than using last.

\n

Returns nil if coll is empty.

\n","related":["cljs.core/first","cljs.core/pop","cljs.core/conj"]},"cljs.core/pop":{"full-name":"cljs.core/pop","signature":["[coll]"],"description-html":"

For a list, returns a new list without the first item.

\n

For a vector, returns a new vector without the last item.

\n","related":["cljs.core/peek","cljs.core/rest","cljs.core/conj"]},"cljs.core/pos?":{"full-name":"cljs.core/pos?","signature":["[n]"],"description-html":"

Returns true if n is greater than 0, false otherwise.

\n","related":["cljs.core/neg?","cljs.core/zero?"]},"cljs.core/quot":{"full-name":"cljs.core/quot","signature":["[n d]"],"description-html":"

Returns the quotient of dividing numerator n by denominator d.

\n

Returns NaN when d is 0 (divide by 0 error).

\n","related":["cljs.core/rem","cljs.core/mod"]},"cljs.core/rand":{"full-name":"cljs.core/rand","signature":["[]","[n]"],"description-html":"

Returns a random floating point number between 0 inclusive and n exclusive.

\n

n defaults to 1.

\n","related":["cljs.core/rand-int","cljs.core/rand-nth"]},"cljs.core/rand-int":{"full-name":"cljs.core/rand-int","signature":["[n]"],"description-html":"

Returns a random integer between 0 inclusive and n exclusive.

\n","related":["cljs.core/rand"]},"cljs.core/rand-nth":{"full-name":"cljs.core/rand-nth","signature":["[coll]"],"description-html":"

Returns a random element from a sequential collection coll.

\n

Has the same performance characteristics as nth.

\n","related":["cljs.core/rand"]},"cljs.core/range":{"full-name":"cljs.core/range","signature":["[]","[end]","[start end]","[start end step]"],"description-html":"

Returns a lazy sequence of nums from start (inclusive) to end (exclusive),\nby step, where start defaults to 0, step to 1, and end to infinity.

\n","related":["cljs.core/repeat"]},"cljs.core/re-find":{"full-name":"cljs.core/re-find","signature":["[re s]"],"description-html":"

Returns the first regex match, if any, of s to re, using re.exec(s).

\n

Returns a vector, containing first the matching substring, then any capturing\ngroups if the regular expression contains capturing groups.

\n"},"cljs.core/re-matches":{"full-name":"cljs.core/re-matches","signature":["[re s]"],"description-html":"

Returns the result of (re-find re s) if re fully matches s.

\n"},"cljs.core/re-pattern":{"full-name":"cljs.core/re-pattern","signature":["[s]"],"description-html":"

Returns an instance of RegExp which has compiled the provided string.

\n"},"cljs.core/re-seq":{"full-name":"cljs.core/re-seq","signature":["[re s]"],"description-html":"

Returns a lazy sequence of successive matches of regex re in string s.

\n","related":["cljs.core/re-find","cljs.core/re-groups","cljs.core/re-pattern","cljs.core/re-matcher","cljs.core/re-matches","cljs.core/subs","clojure.string/split"]},"cljs.core/realized?":{"full-name":"cljs.core/realized?","signature":["[x]"],"description-html":"

Returns true if a value has been produced for a lazy sequence.

\n","related":["cljs.core/lazy-seq"]},"cljs.core/reduce":{"full-name":"cljs.core/reduce","signature":["[f coll]","[f val coll]"],"description-html":"

f should be a function of 2 arguments. If val is not supplied, returns the\nresult of applying f to the first 2 items in coll, then applying f to that\nresult and the 3rd item, etc.

\n

If coll contains no items, f must accept no arguments as well, and reduce\nreturns the result of calling f with no arguments.

\n

If coll has only 1 item, it is returned and f is not called.

\n

If val is supplied, returns the result of applying f to val and the first\nitem in coll, then applying f to that result and the 2nd item, etc.

\n

If coll contains no items, returns val and f is not called.

\n","related":["cljs.core/reductions","cljs.core/apply","cljs.core/frequencies"]},"cljs.core/reduce-kv":{"full-name":"cljs.core/reduce-kv","signature":["[f init coll]"],"description-html":"

Reduces an associative collection.

\n

f should be a function of 3 arguments. Returns the result of applying f to\ninit, the first key and the first value in coll, then applying f to that\nresult and the 2nd key and value, etc.

\n

If coll contains no entries, returns init and f is not called.

\n

Note that reduce-kv is supported on vectors, where the keys will be the\nordinals.

\n","related":["cljs.core/reduce"]},"cljs.core/reductions":{"full-name":"cljs.core/reductions","signature":["[f coll]","[f init coll]"],"description-html":"

Returns a lazy sequence of the intermediate values of the reduction (as per\nreduce) of coll by f, starting with init.

\n","related":["cljs.core/reduce"]},"cljs.core/rem":{"full-name":"cljs.core/rem","signature":["[n d]"],"description-html":"

Returns the remainder of dividing numerator n by denominator d.

\n

Returns NaN when d is 0 (divide by 0 error).

\n","related":["cljs.core/quot","cljs.core/mod"]},"cljs.core/remove":{"full-name":"cljs.core/remove","signature":["[pred]","[pred coll]"],"description-html":"

Returns a lazy sequence of the items in coll for which (pred item) returns\nfalse.

\n

pred must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/filter"]},"cljs.core/remove-watch":{"full-name":"cljs.core/remove-watch","signature":["[a key]"],"description-html":"

Removes a watch function identified by key from atom a. The function must\nhave originally been set by add-watch.

\n","related":["cljs.core/add-watch"]},"cljs.core/repeat":{"full-name":"cljs.core/repeat","signature":["[x]","[n x]"],"description-html":"

Returns a lazy sequence of xs.

\n

The length of the sequence is infinite, or n if provided.

\n","related":["cljs.core/repeatedly","cljs.core/cycle","cljs.core/constantly","cljs.core/dotimes"]},"cljs.core/repeatedly":{"full-name":"cljs.core/repeatedly","signature":["[f]","[n f]"],"description-html":"

Takes a function f of no args, presumably with side effects, and returns an\ninfinite (or length n if supplied) lazy sequence of calls to it.

\n","related":["cljs.core/repeat","cljs.core/iterate","cljs.core/lazy-seq","cljs.core/dotimes","cljs.core/constantly"]},"cljs.core/replace":{"full-name":"cljs.core/replace","signature":["[smap]","[smap coll]"],"description-html":"

Given a map of replacement pairs smap and a vector/collection coll, returns\na vector/seq with any elements = to a key in smap replaced with the\ncorresponding val in smap.

\n

Returns a transducer when coll is not provided.

\n","related":["cljs.core/map","clojure.walk/prewalk-replace","clojure.walk/postwalk-replace"]},"cljs.core/reset!":{"full-name":"cljs.core/reset!","signature":["[a new-value]"],"description-html":"

Sets the value of atom a to new-value without regard for the current value.

\n

Returns new-value.

\n","related":["cljs.core/swap!","cljs.core/compare-and-set!","cljs.core/atom"]},"cljs.core/rest":{"full-name":"cljs.core/rest","signature":["[coll]"],"description-html":"

Returns a possibly empty sequence of the items after the first item.

\n

Calls seq on its argument.

\n","related":["cljs.core/next","cljs.core/first","cljs.core/drop","cljs.core/pop"]},"cljs.core/reverse":{"full-name":"cljs.core/reverse","signature":["[coll]"],"description-html":"

Returns a sequence of the items in coll in reverse order. Not lazy.

\n","related":["cljs.core/rseq"]},"cljs.core/reversible?":{"full-name":"cljs.core/reversible?","signature":["[coll]"],"description-html":"

Returns true if coll implements the IReversible protocol, false otherwise.

\n

Vectors, sorted maps, and sorted sets implement IReversible.

\n"},"cljs.core/rseq":{"full-name":"cljs.core/rseq","signature":["[coll]"],"description-html":"

Returns a sequence of the items in coll in reverse order in constant time.

\n

Returns nil if coll is empty.

\n

coll must be a vector or a sorted-map.

\n","related":["cljs.core/reverse"]},"cljs.core/rsubseq":{"full-name":"cljs.core/rsubseq","signature":["[sc test key]","[sc start-test start-key end-test end-key]"],"description-html":"

sc must be a sorted collection.

\n

test, start-test, end-test must be <, <=, > or >=.

\n

Returns a reverse sequence of those entries with keys ek for which\n(test (.. sc comparator (compare ek key)) 0) is true.

\n","related":["cljs.core/subseq"]},"cljs.core/second":{"full-name":"cljs.core/second","signature":["[coll]"],"description-html":"

Returns the second item in coll.

\n

Same as (first (next coll))

\n","related":["cljs.core/first","cljs.core/nth","cljs.core/fnext","cljs.core/next"]},"cljs.core/select-keys":{"full-name":"cljs.core/select-keys","signature":["[map keys]"],"description-html":"

Returns a map containing only those entries in map whose key is in keys.

\n"},"cljs.core/seq":{"full-name":"cljs.core/seq","signature":["[coll]"],"description-html":"

Returns a sequence on the collection. If the collection is empty, returns nil.

\n

(seq nil) returns nil.

\n

seq also works on strings.

\n","related":["cljs.core/seq?","cljs.core/empty?","cljs.core/iterator-seq"]},"cljs.core/seq?":{"full-name":"cljs.core/seq?","signature":["[x]"],"description-html":"

Returns true if x is a sequence, false otherwise.

\n

All collections can be converted into a sequence using seq.

\n","related":["cljs.core/seq","cljs.core/sequential?","cljs.core/vector?","cljs.core/coll?","cljs.core/list?","cljs.core/map?","cljs.core/set?"]},"cljs.core/sequential?":{"full-name":"cljs.core/sequential?","signature":["[coll]"],"description-html":"

Returns true if coll implements the ISequential protocol, false otherwise.

\n

Lists and vectors are sequential.

\n","related":["cljs.core/seq?","cljs.core/coll?"]},"cljs.core/set":{"full-name":"cljs.core/set","signature":["[coll]"],"description-html":"

Returns a set of the distinct elements of coll.

\n","related":["cljs.core/hash-set","cljs.core/sorted-set","cljs.core/conj","cljs.core/disj","cljs.core/distinct","clojure.set/join","clojure.set/select","clojure.set/difference","clojure.set/intersection","clojure.set/union","clojure.set/index","clojure.set/project","clojure.set/rename","clojure.set/rename-keys","clojure.set/map-invert"]},"cljs.core/set!":{"full-name":"cljs.core/set!","signature":["[js-var val]"],"description-html":"

Sets js-var to val using the JavaScript = operator.

\n","related":["cljs.core/aset","cljs.core/reset!"]},"cljs.core/set-validator!":{"full-name":"cljs.core/set-validator!","signature":["[a fn]"],"description-html":"

Sets a validator function for atom a.

\n

fn must be nil or a side-effect-free function of one argument, which will be\npassed the intended new state on any state change. fn should return false or\nthrow an Error if the new state is unacceptable.

\n

If the current value of a is unacceptable to fn when set-validator! is\ncalled, an Error will be thrown and the validator will not be set.

\n

(set-validator! my-atom nil) will remove the validator from my-atom.

\n","related":["cljs.core/atom","cljs.core/get-validator"]},"cljs.core/set?":{"full-name":"cljs.core/set?","signature":["[x]"],"description-html":"

Returns true if x is a set, false otherwise.

\n","related":["cljs.core/set"]},"cljs.core/shuffle":{"full-name":"cljs.core/shuffle","signature":["[coll]"],"description-html":"

Returns a random permutation of coll.

\n"},"cljs.core/some":{"full-name":"cljs.core/some","signature":["[pred coll]"],"description-html":"

Returns the first logical true value of (pred x) for any x in coll, else\nnil.

\n

A common idiom is to use a set as pred, for example this will return :fred if\n:fred is in the sequence, otherwise nil: (some #{:fred} coll)

\n","related":["cljs.core/every?","cljs.core/not-any?","cljs.core/keep","cljs.core/keep-indexed","cljs.core/some-fn"]},"cljs.core/some->":{"full-name":"cljs.core/some->","signature":["[expr & forms]"],"description-html":"

When expr is not nil, threads it into the first form (via ->), and when that\nresult is not nil, through the next, etc.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/some->>","cljs.core/some"],"type":"macro"},"cljs.core/some->>":{"full-name":"cljs.core/some->>","signature":["[expr & forms]"],"description-html":"

When expr is not nil, threads it into the first form (via ->>), and when\nthat result is not nil, through the next, etc.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/some->","cljs.core/some"],"type":"macro"},"cljs.core/some-fn":{"full-name":"cljs.core/some-fn","signature":["[p]","[p1 p2]","[p1 p2 p3]","[p1 p2 p3 & ps]"],"description-html":"

Takes a set of predicate functions and returns a function f that returns the\nfirst logical true value returned by one of its composing predicates against any\nof its arguments, else it returns logical false.

\n

Note that f is short-circuiting in that it will stop execution on the first\nargument that triggers a logical true result against the original predicates.

\n","related":["cljs.core/every-pred","cljs.core/some","cljs.core/or"]},"cljs.core/some?":{"full-name":"cljs.core/some?","signature":["[x]"],"description-html":"

Returns true if x is not nil, false otherwise.

\n","related":["cljs.core/true?","cljs.core/nil?"]},"cljs.core/sort":{"full-name":"cljs.core/sort","signature":["[coll]","[comp coll]"],"description-html":"

Returns a sorted sequence of the items in coll.

\n

comp can be a boolean-valued comparison funcion, or a -/0/+ valued comparator.

\n

comp defaults to compare.

\n","related":["cljs.core/sort-by"]},"cljs.core/sort-by":{"full-name":"cljs.core/sort-by","signature":["[keyfn coll]","[keyfn comp coll]"],"description-html":"

Returns a sorted sequence of the items in coll, where the sort order is\ndetermined by comparing (keyfn item).

\n

comp can be boolean-valued comparison function, or a -/0/+ valued comparator.

\n

comp defaults to compare.

\n","related":["cljs.core/sort","cljs.core/compare"]},"cljs.core/sorted-map":{"full-name":"cljs.core/sorted-map","signature":["[& keyvals]"],"description-html":"

Returns a new sorted map with supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/sorted-map-by","cljs.core/subseq","cljs.core/rsubseq","cljs.core/sorted-set","cljs.core/array-map","cljs.core/hash-map"]},"cljs.core/sorted-map-by":{"full-name":"cljs.core/sorted-map-by","signature":["[comparator & keyvals]"],"description-html":"

Returns a new sorted map with supplied mappings, using the supplied comparator\nfunction.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/sorted-map","cljs.core/subseq","cljs.core/rsubseq","cljs.core/sorted-set-by"]},"cljs.core/sorted-set":{"full-name":"cljs.core/sorted-set","signature":["[& keys]"],"description-html":"

Returns a new sorted set with supplied keys.

\n","related":["cljs.core/sorted-set-by","cljs.core/subseq","cljs.core/rsubseq","cljs.core/sorted-map"]},"cljs.core/sorted-set-by":{"full-name":"cljs.core/sorted-set-by","signature":["[comparator & keys]"],"description-html":"

Returns a new sorted set with supplied keys, using the supplied comparator.

\n","related":["cljs.core/sorted-set","cljs.core/sorted-map-by","cljs.core/compare"]},"cljs.core/sorted?":{"full-name":"cljs.core/sorted?","signature":["[coll]"],"description-html":"

Returns true if coll implements the ISorted protocol, false otherwise.

\n

Sorted maps and sorted sets implement ISorted.

\n","related":["cljs.core/sorted-map","cljs.core/sorted-set"]},"cljs.core/split-at":{"full-name":"cljs.core/split-at","signature":["[n coll]"],"description-html":"

Returns a vector of [(take n coll) (drop n coll)].

\n","related":["cljs.core/split-with","clojure.string/split"]},"cljs.core/split-with":{"full-name":"cljs.core/split-with","signature":["[pred coll]"],"description-html":"

Returns a vector of [(take-while pred coll) (drop-while pred coll)]

\n","related":["cljs.core/split-at","clojure.string/split","cljs.core/take-while","cljs.core/drop-while"]},"cljs.core/str":{"full-name":"cljs.core/str","signature":["[]","[x]","[x & ys]"],"description-html":"

(str) and (str nil) return the empty string.

\n

(str x) returns x.toString().

\n

With more than one argument, returns the concatenation of the str values of\nthe arguments.

\n"},"cljs.core/string?":{"full-name":"cljs.core/string?","signature":["[x]"],"description-html":"

Returns true if x is a string, false otherwise.

\n"},"cljs.core/subs":{"full-name":"cljs.core/subs","signature":["[s start]","[s start end]"],"description-html":"

Returns the substring of s beginning at start inclusive, and ending at end\nexclusive.

\n

end defaults to the length of the string.

\n"},"cljs.core/subseq":{"full-name":"cljs.core/subseq","signature":["[sc test key]","[sc start-test start-key end-test end-key]"],"description-html":"

sc must be a sorted collection.

\n

test, start-test, end-test must be <, <=, > or >=.

\n

Returns a sequence of those entries with keys ek for which\n(test (.. sc comparator (compare ek key)) 0) is true.

\n","related":["cljs.core/rsubseq","cljs.core/sorted-map","cljs.core/sorted-set","cljs.core/sorted-map-by","cljs.core/sorted-set-by"]},"cljs.core/subvec":{"full-name":"cljs.core/subvec","signature":["[v start]","[v start end]"],"description-html":"

Returns a persistent vector of the items in v from start inclusive to end\nexclusive.

\n

If end is not supplied, defaults to (count v).

\n

This operation is O(1) and very fast, as the resulting vector shares structure\nwith the original and no trimming is done.

\n","related":["cljs.core/vector","cljs.core/vector?"]},"cljs.core/swap!":{"full-name":"cljs.core/swap!","signature":["[a f]","[a f x]","[a f x y]","[a f x y & more]"],"description-html":"

Atomically swaps the value of atom to be: (apply f current-value-of-atom\nargs)

\n

Note that f may be called multiple times, and thus should be free of side\neffects.

\n

Returns the value that was swapped in.

\n","related":["cljs.core/atom","cljs.core/reset!"]},"cljs.core/take":{"full-name":"cljs.core/take","signature":["[n]","[n coll]"],"description-html":"

Returns a lazy sequence of the first n items in coll. Returns all the items\nif there are fewer than n.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/drop","cljs.core/take-while","cljs.core/take-last","cljs.core/take-nth"]},"cljs.core/take-last":{"full-name":"cljs.core/take-last","signature":["[n coll]"],"description-html":"

Returns a sequence of the last n items in coll.

\n

Depending on the type of collection, take-last may be no faster than linear\ntime. For vectors, please use subvec.

\n","related":["cljs.core/last","cljs.core/butlast","cljs.core/drop-last"]},"cljs.core/take-nth":{"full-name":"cljs.core/take-nth","signature":["[n]","[n coll]"],"description-html":"

Returns a lazy seq of every nth item in coll.

\n

Returns a stateful transducer when no collection is provided.

\n"},"cljs.core/take-while":{"full-name":"cljs.core/take-while","signature":["[pred]","[pred coll]"],"description-html":"

Returns a lazy sequence of successive items from coll while (pred item)\nreturns true. pred must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/drop-while","cljs.core/split-with"]},"cljs.core/throw":{"full-name":"cljs.core/throw","signature":["[expr]"],"description-html":"

expr is evaluated and thrown, hopefully to be caught by a try expression.

\n

(throw (js/Error. "Oops!"))

\n","related":["cljs.core/try","cljs.core/catch","cljs.core/finally"],"type":"special form"},"cljs.core/to-array-2d":{"full-name":"cljs.core/to-array-2d","signature":["[coll]"],"description-html":"

Returns a (potentially-ragged) 2-dimensional JavaScript array containing the\ncontents of coll.

\n","related":["cljs.core/to-array"]},"cljs.core/tree-seq":{"full-name":"cljs.core/tree-seq","signature":["[branch? children root]"],"description-html":"

Returns a lazy sequence of the nodes in a tree, via a depth-first walk.

\n

branch? must be a function of one argument that returns true if passed a node\nthat can have children (but may not).

\n

children must be a function of one argument that returns a sequence of the\nchildren. children will only be called on nodes for which branch? returns\ntrue.

\n

root is the root node of the tree.

\n"},"cljs.core/true?":{"full-name":"cljs.core/true?","signature":["[x]"],"description-html":"

Returns true if x is the value true, false otherwise.

\n","related":["cljs.core/false?"]},"cljs.core/try":{"full-name":"cljs.core/try","signature":["[expr* catch-clause* finally-clause?]"],"description-html":"

The expressions (expr*) are evaluated and, if no exceptions occur, the value\nof the last is returned.

\n

If an exception occurs and catch clauses (catch-clause*) are provided, each is\nexamined in turn and the first for which the thrown exception is an instance of\nthe named class is considered a matching catch clause. If there is a matching\ncatch clause, its expressions are evaluated in a context in which name is bound\nto the thrown exception, and the value of the last is the return value of the\nfunction.

\n

If there is no matching catch clause, the exception propagates out of the\nfunction. Before returning, normally or abnormally, any finally-clause?\nexpressions will be evaluated for their side effects.

\n

try is one of ClojureScript's special forms.

\n","related":["cljs.core/catch","cljs.core/finally","cljs.core/throw"],"type":"special form"},"cljs.core/unsigned-bit-shift-right":{"full-name":"cljs.core/unsigned-bit-shift-right","signature":["[x n]"],"description-html":"

Bitwise shift right with zero fill

\n","related":["cljs.core/bit-shift-right"]},"cljs.core/update-in":{"full-name":"cljs.core/update-in","signature":["[m [k & ks] f]","[m [k & ks] f a]","[m [k & ks] f a b]","[m [k & ks] f a b c]","[m [k & ks] f a b c & args]"],"description-html":"

"Updates" a value in a nested associative structure, where ks is a sequence of\nkeys and f is a function that will take the old value and any supplied\narguments and return the new value. Returns a new nested structure.

\n

If any levels do not exist, hash-maps will be created.

\n","related":["cljs.core/assoc-in","cljs.core/get-in"]},"cljs.core/val":{"full-name":"cljs.core/val","signature":["[map-entry]"],"description-html":"

Returns the value in the map entry.

\n","related":["cljs.core/vals"]},"cljs.core/vals":{"full-name":"cljs.core/vals","signature":["[hash-map]"],"description-html":"

Returns a sequence of the values in hash-map.

\n","related":["cljs.core/keys"]},"cljs.core/vec":{"full-name":"cljs.core/vec","signature":["[coll]"],"description-html":"

Creates a new vector containing the contents of coll

\n","related":["cljs.core/vector","cljs.core/vector?","cljs.core/vector-of"]},"cljs.core/vector":{"full-name":"cljs.core/vector","signature":["[& args]"],"description-html":"

Creates a new vector containing args.

\n","related":["cljs.core/vec","cljs.core/vector?","cljs.core/vector-of","cljs.core/pop","cljs.core/into"]},"cljs.core/vector?":{"full-name":"cljs.core/vector?","signature":["[x]"],"description-html":"

Returns true if x is a vector, false otherwise.

\n","related":["cljs.core/vector","cljs.core/vec"]},"cljs.core/when":{"full-name":"cljs.core/when","signature":["[test & body]"],"description-html":"

Evaluates test. If logical true, evaluates body in an implicit do.

\n

when is often used instead of if for conditions that do not have an "else".

\n","related":["cljs.core/when-not","cljs.core/when-let","cljs.core/if"],"type":"macro"},"cljs.core/when-first":{"full-name":"cljs.core/when-first","signature":["[bindings & body]"],"description-html":"

With bindings as x, xs, roughly the same as (when (seq xs) (let [x (first\nxs)] body)) but xs is evaluated only once.

\n","type":"macro"},"cljs.core/when-let":{"full-name":"cljs.core/when-let","signature":["[[x test] & body]"],"description-html":"

When test is logical true, evaluates body with the value of test bound to\nx.

\n","related":["cljs.core/if-let","cljs.core/when","cljs.core/when-not","cljs.core/if","cljs.core/when-first"],"type":"macro"},"cljs.core/when-not":{"full-name":"cljs.core/when-not","signature":["[test & body]"],"description-html":"

Evaluates test. If logical false, evaluates body in an implicit do.

\n","related":["cljs.core/when","cljs.core/when-let","cljs.core/if"],"type":"macro"},"cljs.core/when-some":{"full-name":"cljs.core/when-some","signature":["[[x test] & body]"],"description-html":"

When test is not nil, evaluates body with x bound to the value of test.

\n","related":["cljs.core/if-some"],"type":"macro"},"cljs.core/while":{"full-name":"cljs.core/while","signature":["[test & body]"],"description-html":"

Repeatedly executes body while test expression is true. Presumes some\nside-effect will cause test to become false or nil.

\n

Returns nil.

\n","related":["cljs.core/loop"],"type":"macro"},"cljs.core/zero?":{"full-name":"cljs.core/zero?","signature":["[n]"],"description-html":"

Returns true if n is 0, false otherwise.

\n","related":["cljs.core/pos?","cljs.core/neg?"]},"cljs.core/zipmap":{"full-name":"cljs.core/zipmap","signature":["[keys vals]"],"description-html":"

Returns a map with keys mapped to corresponding vals.

\n
user=> (zipmap [:a :b :c :d] [1 2 3 4])\n{:a 1, :b 2, :c 3, :d 4}
","related":["cljs.core/interleave"]},"clojure.set/difference":{"full-name":"clojure.set/difference","signature":["[s1]","[s1 s2]","[s1 s2 & sets]"],"description-html":"

Return a set that is the first set without elements of the remaining sets.

\n","related":["clojure.set/union","clojure.set/intersection","clojure.set/superset?","clojure.set/project"]},"clojure.set/intersection":{"full-name":"clojure.set/intersection","signature":["[s1]","[s1 s2]","[s1 s2 & sets]"],"description-html":"

Return a set that is the intersection of the input sets.

\n","related":["clojure.set/union","clojure.set/difference","clojure.set/superset?","clojure.set/project"]},"clojure.set/select":{"full-name":"clojure.set/select","signature":["[pred xset]"],"description-html":"

Returns a set of the elements for which pred is true.

\n","related":["cljs.core/filter"]},"clojure.set/subset?":{"full-name":"clojure.set/subset?","signature":["[a b]"],"description-html":"

Returns true if a is a subset of b, false otherwise.

\n

In other words, returns true if all the elements of a can be found in b.

\n","related":["cljs.core/set","cljs.core/set?","clojure.set/superset?"]},"clojure.set/superset?":{"full-name":"clojure.set/superset?","signature":["[a b]"],"description-html":"

Returns true if a is a superset of b, false otherwise.

\n

In other words, returns true if a contains all the elements of b.

\n","related":["cljs.core/set","cljs.core/set?","clojure.set/subset?"]},"clojure.set/union":{"full-name":"clojure.set/union","signature":["[]","[s1]","[s1 s2]","[s1 s2 & sets]"],"description-html":"

Return a set that is the union of the input sets.

\n","related":["clojure.set/intersection","clojure.set/difference","clojure.set/superset?"]},"clojure.string/blank?":{"full-name":"clojure.string/blank?","signature":["[s]"],"description-html":"

True if s is nil, empty, or contains only whitespace.

\n"},"clojure.string/capitalize":{"full-name":"clojure.string/capitalize","signature":["[s]"],"description-html":"

Converts first character of the string to upper-case, all other characters to\nlower-case.

\n"},"clojure.string/escape":{"full-name":"clojure.string/escape","signature":["[s cmap]"],"description-html":"

Return a new string, using cmap to escape each character ch from s as follows:

\n

If (cmap ch) is nil, append ch to the new string.

\n

If (cmap ch) is non-nil, append (str (cmap ch)) instead.

\n"},"clojure.string/join":{"full-name":"clojure.string/join","signature":["[coll]","[separator coll]"],"description-html":"

Returns a string of all elements in coll, as returned by (seq coll),\nseparated by an optional separator.

\n"},"clojure.string/lower-case":{"full-name":"clojure.string/lower-case","signature":["[s]"],"description-html":"

Converts string to all lower-case.

\n"},"clojure.string/replace":{"full-name":"clojure.string/replace","signature":["[s match replacement]"],"description-html":"

Replaces all instance of match with replacement in s.

\n

The options for match / replacement are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
matchreplacement
stringstring
regexstring
regexfunction
\n","related":["cljs.core/subs","clojure.string/split","clojure.string/replace-first"]},"clojure.string/replace-first":{"full-name":"clojure.string/replace-first","signature":["[s match replacement]"],"description-html":"

Replaces the first instance of match with replacement in s.

\n

The options for match / replacement are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
matchreplacement
stringstring
regexstring
regexfunction
\n"},"clojure.string/reverse":{"full-name":"clojure.string/reverse","signature":["[s]"],"description-html":"

Returns s with its characters reversed.

\n"},"clojure.string/split":{"full-name":"clojure.string/split","signature":["[s re]","[s re limit]"],"description-html":"

Splits string on a regular expression. Optional argument limit is the maximum\nnumber of splits. Not lazy. Returns vector of the splits.

\n","related":["cljs.core/subs","clojure.string/replace","clojure.string/split-lines"]},"clojure.string/split-lines":{"full-name":"clojure.string/split-lines","signature":["[s]"],"description-html":"

Splits s on \\n or \\r\\n.

\n","related":["clojure.string/split"]},"clojure.string/trim":{"full-name":"clojure.string/trim","signature":["[s]"],"description-html":"

Removes whitespace from both ends of string.

\n"},"clojure.string/trim-newline":{"full-name":"clojure.string/trim-newline","signature":["[s]"],"description-html":"

Removes all trailing newline \\n or return \\r characters from string.

\n

Similar to Perl's chomp.

\n"},"clojure.string/triml":{"full-name":"clojure.string/triml","signature":["[s]"],"description-html":"

Removes whitespace from the left side of string.

\n"},"clojure.string/trimr":{"full-name":"clojure.string/trimr","signature":["[s]"],"description-html":"

Removes whitespace from the right side of string.

\n"},"clojure.string/upper-case":{"full-name":"clojure.string/upper-case","signature":["[s]"],"description-html":"

Converts string to all upper-case.

\n"}} \ No newline at end of file +{"cljs.core/*":{"full-name":"cljs.core/*","signature":["[]","[x]","[x y]","[x y & more]"],"description-html":"

Returns the product of nums.

\n

(*) returns 1.

\n","related":["cljs.core/+","cljs.core//"]},"cljs.core/+":{"full-name":"cljs.core/+","signature":["[]","[x]","[x y]","[x y & more]"],"description-html":"

Returns the sum of nums.

\n

(+) returns 0.

\n","related":["cljs.core/*","cljs.core/-"]},"cljs.core/-":{"full-name":"cljs.core/-","signature":["[x]","[x y]","[x y & more]"],"description-html":"

If no ys are supplied, returns the negation of x, else subtracts the ys\nfrom x and returns the result.

\n","related":["cljs.core/+"]},"cljs.core/->":{"full-name":"cljs.core/->","signature":["[x & forms]"],"description-html":"

The thread-first macro "threads" an expression through several forms as the\nsecond item in a list.

\n

Inserts x as the second item in the first form, making a list of it if it is\nnot a list already. If there are more forms, inserts the first form as the\nsecond item in second form, etc.

\n\n \n \n \n \n \n \n \n
CodeExpands To
\n(-> x\n  (a b c)\n  d\n  (x y z))
\n(x (d (a x b c)) y z)
","related":["cljs.core/->>"],"type":"macro"},"cljs.core/->>":{"full-name":"cljs.core/->>","signature":["[x & forms]"],"description-html":"

The thread-last macro "threads" an expression through several forms as the last\nitem in a list.

\n

Inserts x as the last item in the first form, making a list of it if it is not\na list already. If there are more forms, inserts the first form as the last item\nin second form, etc.

\n\n \n \n \n \n \n \n \n
CodeExpands To
\n(->> x\n  (a b c)\n  d\n  (x y z))
\n(x y z (d (a b c x)))
","related":["cljs.core/->"],"type":"macro"},"cljs.core//":{"full-name":"cljs.core//","signature":["[x]","[x y]","[x y & more]"],"description-html":"

If no denominators are supplied, returns 1/numerator, else returns numerator\ndivided by all of the denominators.

\n","related":["cljs.core/*","cljs.core/quot"]},"cljs.core/<":{"full-name":"cljs.core/<","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is greater than the previous\none, false otherwise.

\n","related":["cljs.core/<="]},"cljs.core/<=":{"full-name":"cljs.core/<=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is greater than or equal to the\nprevious one, false otherwise.

\n","related":["cljs.core/<"]},"cljs.core/=":{"full-name":"cljs.core/=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if the value of x equals the value of y, false otherwise.

\n

= is a value comparison, not an identity comparison.

\n

All collections can be tested for value, regardless of "depth".

\n","related":["cljs.core/==","cljs.core/not=","cljs.core/identical?"]},"cljs.core/==":{"full-name":"cljs.core/==","signature":["[x]","[x y]","[x y & more]"],"description-html":"

This is an equality check for numbers of different types that was carried over from Clojure,\nto allow compatibility when converting code to ClojureScript.

\n

Since there is only a single number type in JavaScript, 64-bit floating point, there is no\nreason to use the == operator in ClojureScript.

\n

Behavior on non-number arguments is undefined.

\n","related":["cljs.core/=","cljs.core/identical?"]},"cljs.core/>":{"full-name":"cljs.core/>","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is less than the previous\none, false otherwise.

\n","related":["cljs.core/>="]},"cljs.core/>=":{"full-name":"cljs.core/>=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if each successive number argument is less than or equal to the\nprevious one, false otherwise.

\n","related":["cljs.core/>"]},"cljs.core/aclone":{"full-name":"cljs.core/aclone","signature":["[arr]"],"description-html":"

Creates a clone of the given JavaScript array arr. The result is a new\nJavaScript array, which is a shallow copy, not a deep copy.

\n","related":["cljs.core/array","cljs.core/make-array"]},"cljs.core/add-watch":{"full-name":"cljs.core/add-watch","signature":["[a key f]"],"description-html":"

Adds a watch function f to atom a that will execute when the value of a\nchanges.

\n

The watch function takes 4 arguments: a key, the atom, its old state, and its\nnew state.

\n

key should be a keyword and can be used with remove-watch to remove the\nwatch function.

\n","related":["cljs.core/remove-watch"]},"cljs.core/and":{"full-name":"cljs.core/and","signature":["[]","[x]","[x & next]"],"description-html":"

Evaluates arguments one at a time from left to right. If an argument returns\nlogical false (nil or false), and returns that value and doesn't evaluate any\nof the other arguments, otherwise it returns the value of the last argument.

\n

(and) returns true.

\n","related":["cljs.core/or","cljs.core/if"],"type":"macro"},"cljs.core/apply":{"full-name":"cljs.core/apply","signature":["[f args]","[f x args]","[f x y args]","[f x y z args]","[f a b c d & args]"],"description-html":"

Applies function f to the argument list formed by prepending intervening\narguments to args.

\n","related":["cljs.core/map"]},"cljs.core/array":{"full-name":"cljs.core/array","signature":["[& args]"],"description-html":"

Creates a JavaScript array containing args.

\n

The tagged literal #js [1 2 3] is equivalent to (array 1 2 3)

\n","related":["cljs.core/aclone","cljs.core/make-array","cljs.core/clj->js"]},"cljs.core/array-map":{"full-name":"cljs.core/array-map","signature":["[& keyvals]"],"description-html":"

Returns a new array map (a map implemented with arrays) with the supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/assoc","cljs.core/hash-map","cljs.core/sorted-map"]},"cljs.core/array?":{"full-name":"cljs.core/array?","signature":["[x]"],"description-html":"

Returns true if x is a JavaScript array, false otherwise.

\n","related":["cljs.core/object?"]},"cljs.core/as->":{"full-name":"cljs.core/as->","signature":["[expr name & forms]"],"description-html":"

Binds name to expr, evaluates the first form in the lexical context of that\nbinding, then binds name to that result, repeating for each successive form,\nreturning the result of the last form.

\n

Useful for when you want a threading macro to use different "places" at each\nform.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/cond->","cljs.core/cond->>","cljs.core/some->","cljs.core/some->>"],"type":"macro"},"cljs.core/assoc":{"full-name":"cljs.core/assoc","signature":["[coll k v]","[coll k v & kvs]"],"description-html":"

assoc(iate)

\n

When applied to a map, returns a new map that contains the mapping of key(s) to\nval(s).

\n

Has no effect on the map type (hashed/sorted).

\n

When applied to a vector, returns a new vector that contains value v at index\nk.

\n","related":["cljs.core/assoc-in","cljs.core/dissoc","cljs.core/merge"]},"cljs.core/assoc-in":{"full-name":"cljs.core/assoc-in","signature":["[m [k & ks] v]"],"description-html":"

Associates a value in a nested associative structure, where ks is a sequence\nof keys and v is the new value. Returns a new nested structure.

\n

If any levels do not exist, hash-maps will be created.

\n","related":["cljs.core/assoc","cljs.core/update-in","cljs.core/dissoc-in","cljs.core/get-in"]},"cljs.core/associative?":{"full-name":"cljs.core/associative?","signature":["[coll]"],"description-html":"

Returns true if coll implements the IAssociative protocol, false otherwise.

\n

Maps and vectors are associative.

\n"},"cljs.core/atom":{"full-name":"cljs.core/atom","signature":["[x]","[x opts]"],"description-html":"

Creates and returns an atom with an initial value of x.

\n

opts is an optional map with optional keys :meta and :validator.

\n

:meta should be a metadata-map for the atom.

\n

:validator should be a validator function for the atom. See set-validator!\nfor more information.

\n","related":["cljs.core/atom","cljs.core/swap!","cljs.core/reset!","cljs.core/set-validator!","cljs.core/get-validator"]},"cljs.core/bit-and":{"full-name":"cljs.core/bit-and","signature":["[x y]","[x y & more]"],"description-html":"

Bitwise "and". Same as x & y in JavaScript.

\n","related":["cljs.core/bit-or"]},"cljs.core/bit-and-not":{"full-name":"cljs.core/bit-and-not","signature":["[x y]","[x y & more]"],"description-html":"

Bitwise "and" x with bitwise "not" y. Same as x & ~y in JavaScript.

\n","related":["cljs.core/bit-and","cljs.core/bit-not"]},"cljs.core/bit-clear":{"full-name":"cljs.core/bit-clear","signature":["[x n]"],"description-html":"

Clear bit at index n. Same as x & ~(1 << y) in JavaScript.

\n","related":["cljs.core/bit-set"]},"cljs.core/bit-flip":{"full-name":"cljs.core/bit-flip","signature":["[x n]"],"description-html":"

Flip bit at index n

\n"},"cljs.core/bit-not":{"full-name":"cljs.core/bit-not","signature":["[x]"],"description-html":"

Bitwise complement

\n"},"cljs.core/bit-or":{"full-name":"cljs.core/bit-or","signature":["[x y]"],"description-html":"

Bitwise or

\n","related":["cljs.core/bit-and","cljs.core/bit-xor"]},"cljs.core/bit-set":{"full-name":"cljs.core/bit-set","signature":["[x n]"],"description-html":"

Set bit at index n

\n","related":["cljs.core/bit-clear"]},"cljs.core/bit-shift-left":{"full-name":"cljs.core/bit-shift-left","signature":["[x n]"],"description-html":"

Bitwise shift left

\n","related":["cljs.core/bit-shift-right"]},"cljs.core/bit-shift-right":{"full-name":"cljs.core/bit-shift-right","signature":["[x n]"],"description-html":"

Bitwise shift right

\n","related":["cljs.core/bit-shift-left","cljs.core/unsigned-bit-shift-right"]},"cljs.core/bit-test":{"full-name":"cljs.core/bit-test","signature":["[x n]"],"description-html":"

Test bit at index n

\n"},"cljs.core/bit-xor":{"full-name":"cljs.core/bit-xor","signature":["[x y]"],"description-html":"

Bitwise exclusive or

\n","related":["cljs.core/bit-and","cljs.core/bit-or"]},"cljs.core/butlast":{"full-name":"cljs.core/butlast","signature":["[s]"],"description-html":"

Returns a sequence of all but the last item in s.

\n

butlast runs in linear time.

\n","related":["cljs.core/first","cljs.core/rest","cljs.core/last","cljs.core/next","cljs.core/drop-last","cljs.core/take-last"]},"cljs.core/case":{"full-name":"cljs.core/case","signature":["[e & clauses]"],"description-html":"

Takes an expression and a set of clauses. Each clause can take the form of\neither:

\n

test-constant result-expr

\n

(test-constant1 ... test-constantN) result-expr

\n

The test-constants are not evaluated. They must be compile-time literals, and\nneed not be quoted. If the expression is equal to a test-constant, the\ncorresponding result-expr is returned. A single default expression can follow\nthe clauses, and its value will be returned if no clause matches. If no default\nexpression is provided and no clause matches, an Error is thrown.

\n

Unlike cond and condp, case does a constant-time dispatch, the clauses are\nnot considered sequentially. All manner of constant expressions are acceptable\nin case, including numbers, strings, symbols, keywords, and ClojureScript\ncomposites thereof. Note that since lists are used to group multiple constants\nthat map to the same expression, a vector can be used to match a list if needed.\nThe test-constants need not be all of the same type.

\n","related":["cljs.core/cond","cljs.core/condp"],"type":"macro"},"cljs.core/catch":{"full-name":"cljs.core/catch","signature":["[exception-type name expr*]"],"description-html":"

catch should be used inside of a try expression.

\n

exception-type should be the type of exception thrown (usually js/Error or\njs/Object). When there is a match, the thrown exception will be bound to\nname inside of expr* and expr* will be evaluated and returned as the value\nof the try expression.

\n","related":["cljs.core/try","cljs.core/finally","cljs.core/throw"],"type":"special form"},"cljs.core/char":{"full-name":"cljs.core/char","signature":["[x]"],"description-html":"

Coerce to char

\n"},"cljs.core/clj->js":{"full-name":"cljs.core/clj->js","signature":["[x]"],"description-html":"

Recursively transforms ClojureScript values to JavaScript.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
ClojureScriptJavaScript
Set#{}Array[]
Vector[]Array[]
List()Array[]
Keyword:fooString"foo"
SymbolbarString"bar"
Map{}Object{}
\n","related":["cljs.core/js->clj"]},"cljs.core/coll?":{"full-name":"cljs.core/coll?","signature":["[x]"],"description-html":"

Returns true if x is a collection, false otherwise.

\n

Lists, maps, sets, and vectors are collections.

\n","related":["cljs.core/seq?","cljs.core/list?","cljs.core/sequential?"]},"cljs.core/comp":{"full-name":"cljs.core/comp","signature":["[]","[f]","[f g]","[f g h]","[f1 f2 f3 & fs]"],"description-html":"

Takes a set of functions (fns) and returns a function that is the composition\nof those functions.

\n

The returned function takes a variable number of arguments, applies the\nrightmost of fns to the arguments, the next fn (right-to-left) to the\nresult, etc.

\n

((comp a b c) x y) => (a (b (c x y)))

\n","related":["cljs.core/partial","cljs.core/juxt"]},"cljs.core/compare":{"full-name":"cljs.core/compare","signature":["[x y]"],"description-html":"

Comparator.

\n

Returns a negative number, zero, or a positive number when x is logically\n"less than", "equal to", or "greater than" y.

\n

Uses IComparable if available and google.array.defaultCompare for objects of\nthe same type. nil is treated as a special case and is always less than any\nother object.

\n","related":["cljs.core/sort-by","cljs.core/sorted-set-by","cljs.core/sorted-map-by"]},"cljs.core/compare-and-set!":{"full-name":"cljs.core/compare-and-set!","signature":["[a oldval newval]"],"description-html":"

Atomically sets the value of atom a to newval if and only if the current\nvalue of the atom is identical to oldval.

\n

Returns true if set happened, false otherwise.

\n","related":["cljs.core/atom","cljs.core/reset!","cljs.core/swap!"]},"cljs.core/complement":{"full-name":"cljs.core/complement","signature":["[f]"],"description-html":"

Takes a function f and returns a function that takes the same arguments as\nf, has the same effects, if any, and returns the opposite truth value.

\n","related":["cljs.core/not"]},"cljs.core/concat":{"full-name":"cljs.core/concat","signature":["[]","[x]","[x y]","[x y & zs]"],"description-html":"

Returns a lazy sequence representing the concatenation of the elements in the\nsupplied collections.

\n","related":["cljs.core/conj","cljs.core/into"]},"cljs.core/cond":{"full-name":"cljs.core/cond","signature":["[& clauses]"],"description-html":"

clauses must be an even number of forms, ie: (cond t1 e1, t2 e2, t3 e3).\nEach test t is evaluated one at a time. If a test returns logical true, cond\nevaluates and returns the corresponding expression e and does not evaluate any\nof the other tests or expressions.

\n

It is idiomatic to provide a default case as the last test pair using the\nkeyword :else (a keyword always evaluates to logical true).

\n

(cond) returns nil.

\n","related":["cljs.core/condp","cljs.core/case","cljs.core/if"],"type":"macro"},"cljs.core/cond->":{"full-name":"cljs.core/cond->","signature":["[expr & clauses]"],"description-html":"

Takes an expression and a set of test/form pairs. Threads expr (via ->)\nthrough each form for which the corresponding test expression is true.

\n

Note that, unlike cond branching, cond-> threading does not short circuit\nafter the first true test expression.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/cond->>","cljs.core/cond"],"type":"macro"},"cljs.core/cond->>":{"full-name":"cljs.core/cond->>","signature":["[expr & clauses]"],"description-html":"

Takes an expression and a set of test/form pairs. Threads expr (via ->>)\nthrough each form for which the corresponding test expression is true.

\n

Note that, unlike cond branching, cond->> threading does not short circuit\nafter the first true test expression.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/cond->","cljs.core/cond"],"type":"macro"},"cljs.core/condp":{"full-name":"cljs.core/condp","signature":["[pred expr & clauses]"],"description-html":"

Takes a binary predicate, an expression, and a set of clauses. There are two\nkinds of clauses:

\n

Binary clause: test-expr result-expr

\n

Ternary clause: test-expr :>> result-fn
\n(Note: :>> is an ordinary keyword)

\n

For each clause, (pred test-expr expr) is evaluated. If it returns logical\ntrue, the clause is a match.

\n

If a binary clause matches, its result-expr is returned.

\n

If a ternary clause matches, its result-fn is called with the result of the\npredicate and returned by condp. result-fn should take one argument.

\n

A single default expression can follow the clauses, and its value will be\nreturned if no clause matches.

\n

If no default expression is provided and no clause matches, an Error is thrown.

\n","related":["cljs.core/cond","cljs.core/if"],"type":"macro"},"cljs.core/conj":{"full-name":"cljs.core/conj","signature":["[]","[coll]","[coll x]","[coll x & xs]"],"description-html":"

conj(oin)

\n

Returns a new collection with the xs "added" to coll.

\n

conj adds items to the end of a vector, the beginning of a list, and into a\nset.

\n

conj works with maps by merging and also supports vector pairs with two\nelements.

\n

Multiple xs are added in order, as if called one at a time.

\n

(conj nil item) returns (item).

\n","related":["cljs.core/cons","cljs.core/into","cljs.core/merge","cljs.core/peek","cljs.core/pop"]},"cljs.core/cons":{"full-name":"cljs.core/cons","signature":["[x coll]"],"description-html":"

Returns a new sequence where x is the first element and coll is the rest.

\n","related":["cljs.core/conj"]},"cljs.core/constantly":{"full-name":"cljs.core/constantly","signature":["[x]"],"description-html":"

Returns a function that takes any number of arguments and always returns x.

\n","related":["cljs.core/repeatedly"]},"cljs.core/contains?":{"full-name":"cljs.core/contains?","signature":["[coll k]"],"description-html":"

Returns true if k is present in coll, otherwise returns false.

\n

Note that for numerically indexed collections like vectors and arrays, this\ntests if the numeric key is within the range of indexes.

\n

contains? operates in constant or logarithmic time; it will not perform a\nlinear search for a value.

\n","related":["cljs.core/some","cljs.core/get"]},"cljs.core/count":{"full-name":"cljs.core/count","signature":["[x]"],"description-html":"

Returns the number of items in x.

\n

count works on arrays, lists, maps, sets, strings, and vectors.

\n

(count nil) returns 0.

\n"},"cljs.core/counted?":{"full-name":"cljs.core/counted?","signature":["[x]"],"description-html":"

Returns true if x executes count in constant time, false otherwise.

\n

Lists, maps, sets, strings, and vectors can be counted in constant time.

\n"},"cljs.core/cycle":{"full-name":"cljs.core/cycle","signature":["[coll]"],"description-html":"

Returns an infinite lazy sequence of repetitions of the items in coll.

\n","related":["cljs.core/lazy-seq","cljs.core/repeatedly"]},"cljs.core/dec":{"full-name":"cljs.core/dec","signature":["[x]"],"description-html":"

Returns a number one less than x.

\n","related":["cljs.core/inc"]},"cljs.core/declare":{"full-name":"cljs.core/declare","signature":["[& names]"],"description-html":"

Uses def to establish symbols of names with no bindings.

\n

Useful for making forward declarations.

\n","related":["cljs.core/def"],"type":"macro"},"cljs.core/def":{"full-name":"cljs.core/def","signature":["[symbol]","[symbol init?]","[symbol doc-string? init?]"],"description-html":"

Creates a global variable with the name of symbol and a namespace of the\ncurrent namespace.

\n

If init is supplied, it is evaluated and the result is assigned to symbol, otherwise symbol is nil.

\n

doc-string is an optional documentation string.

\n

def is one of ClojureScript's special forms\nand is used by many macros to define common elements (ie: defn, defmacro,\netc).

\n","related":["cljs.core/defn","cljs.core/fn","cljs.core/defmacro","cljs.core/defmulti"],"type":"special form"},"cljs.core/defn":{"full-name":"cljs.core/defn","signature":["[name doc-string? attr-map? [params*] prepost-map? body]","[name doc-string? attr-map? ([params*] prepost-map? body) + attr-map?]"],"description-html":"

Defines a function.

\n

doc-string? is an optional documentation string.

\n

attr-map? is an optional map of metadata to\nattach to the global variable name.

\n

prepost-map? is an optional map with optional keys :pre and :post that\ncontain collections of pre or post conditions\nfor the function.

\n\n \n \n \n \n \n \n \n
CodeExpands To
\n(defn foo [a b c]\n  (* a b c))
\n(def foo\n  (fn [a b c]\n    (* a b c)))
","related":["cljs.core/def","cljs.core/defn-","cljs.core/defmacro","cljs.core/fn"],"type":"macro"},"cljs.core/defn-":{"full-name":"cljs.core/defn-","signature":["[name & decls]"],"description-html":"

Same as defn, but adds {:private true} metadata to the definition.

\n

Note: :private metadata is not currently enforced by the ClojureScript\ncompiler.

\n","related":["cljs.core/defn"],"type":"macro"},"cljs.core/deref":{"full-name":"cljs.core/deref","signature":["[x]"],"description-html":"

Returns the current value of atom x.

\n

The @ reader macro is often used instead of deref. @foo is the same thing\nas (deref foo).

\n","related":["cljs.core/atom"]},"cljs.core/disj":{"full-name":"cljs.core/disj","signature":["[coll]","[coll k]","[coll k & ks]"],"description-html":"

disj(oin). Returns a new set of the same (hashed/sorted) type, that does not\ncontain key(s).

\n","related":["cljs.core/dissoc","cljs.core/disj!","clojure.set/difference"]},"cljs.core/dissoc":{"full-name":"cljs.core/dissoc","signature":["[coll]","[coll k]","[coll k & ks]"],"description-html":"

dissoc(iate)

\n

Returns a new map that does not contain a mapping for key(s).

\n

Has no effect on the map type (hashed/sorted).

\n","related":["cljs.core/assoc","cljs.core/dissoc-in","cljs.core/disj","cljs.core/select-keys"]},"cljs.core/distinct":{"full-name":"cljs.core/distinct","signature":["[coll]"],"description-html":"

Returns a lazy sequence of the elements of coll with duplicates removed.

\n","related":["cljs.core/distinct?"]},"cljs.core/distinct?":{"full-name":"cljs.core/distinct?","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns true if no two of the arguments are =

\n","related":["cljs.core/distinct"]},"cljs.core/doall":{"full-name":"cljs.core/doall","signature":["[coll]","[n coll]"],"description-html":"

Forces evaluation of a lazy sequence. Often used to see the effects of a\nsequence produced via functions that have side effects.

\n

doall walks through the successive nexts of the sequence, returning the head\nand causing the entire sequence to reside in memory at one time.

\n","related":["cljs.core/dorun","cljs.core/doseq"]},"cljs.core/dorun":{"full-name":"cljs.core/dorun","signature":["[coll]","[n coll]"],"description-html":"

Forces evaluation of a lazy sequence. Often used to see the effects of a\nsequence produced via functions that have side effects.

\n

dorun walks through the successive nexts of the sequence and returns nil.

\n","related":["cljs.core/doall"]},"cljs.core/doseq":{"full-name":"cljs.core/doseq","signature":["[seq-exprs & body]"],"description-html":"

Repeatedly executes body (presumably for side-effects) with bindings and\nfiltering as provided by for. Does not retain the head of the sequence.

\n

Returns nil.

\n","related":["cljs.core/doall","cljs.core/dorun","cljs.core/for","cljs.core/dotimes"],"type":"macro"},"cljs.core/dotimes":{"full-name":"cljs.core/dotimes","signature":["[[name n] & body]"],"description-html":"

Repeatedly executes body (presumably for side-effects) with name bound to\nintegers from 0 through n-1.

\n","related":["cljs.core/repeat","cljs.core/for","cljs.core/doseq"],"type":"macro"},"cljs.core/drop":{"full-name":"cljs.core/drop","signature":["[n]","[n coll]"],"description-html":"

Returns a lazy sequence of all but the first n items in coll.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/take","cljs.core/drop-last","cljs.core/drop-while","cljs.core/nthnext","cljs.core/nthrest"]},"cljs.core/drop-last":{"full-name":"cljs.core/drop-last","signature":["[s]","[n s]"],"description-html":"

Return a lazy sequence of all but the last n items in s.

\n

n defaults to 1.

\n","related":["cljs.core/drop","cljs.core/drop-while"]},"cljs.core/drop-while":{"full-name":"cljs.core/drop-while","signature":["[pred]","[pred coll]"],"description-html":"

Returns a lazy sequence of the items in coll starting from the first item for\nwhich (pred item) returns logical false.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/take-while","cljs.core/split-with"]},"cljs.core/empty":{"full-name":"cljs.core/empty","signature":["[coll]"],"description-html":"

Returns an empty collection of the same category as coll.

\n

Returns nil if coll is nil.

\n","related":["cljs.core/not-empty"]},"cljs.core/empty?":{"full-name":"cljs.core/empty?","signature":["[coll]"],"description-html":"

Returns true if coll has no items - same as (not (seq coll)).

\n

Please use the idiom (seq x) rather than (not (empty? x)).

\n","related":["cljs.core/seq"]},"cljs.core/even?":{"full-name":"cljs.core/even?","signature":["[n]"],"description-html":"

Returns true if n is an even number.

\n

Throws an exception if n is not an integer.

\n","related":["cljs.core/odd?"]},"cljs.core/every-pred":{"full-name":"cljs.core/every-pred","signature":["[p]","[p1 p2]","[p1 p2 p3]","[p1 p2 p3 & ps]"],"description-html":"

Takes a set of predicate functions and returns a function f that returns true\nif all of its composing predicates return a logical true value against all of\nits arguments, else it returns false.

\n

Note that f is short-circuiting in that it will stop execution on the first\nargument that triggers a logical false result against the original predicates.

\n","related":["cljs.core/some-fn","cljs.core/and"]},"cljs.core/every?":{"full-name":"cljs.core/every?","signature":["[pred coll]"],"description-html":"

Returns true if (pred x) is logical true for every x in coll, else false.

\n","related":["cljs.core/some","cljs.core/not-any?"]},"cljs.core/false?":{"full-name":"cljs.core/false?","signature":["[x]"],"description-html":"

Returns true if x is the value false, false otherwise.

\n","related":["cljs.core/true?","cljs.core/not"]},"cljs.core/ffirst":{"full-name":"cljs.core/ffirst","signature":["[coll]"],"description-html":"

Same as (first (first coll)).

\n","related":["cljs.core/first","cljs.core/fnext","cljs.core/nfirst"]},"cljs.core/filter":{"full-name":"cljs.core/filter","signature":["[f]","[f coll]"],"description-html":"

Returns a lazy sequence of the non-nil results of (f item). Note, this means\nfalse return values will be included.

\n

f must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/remove","cljs.core/keep"]},"cljs.core/filterv":{"full-name":"cljs.core/filterv","signature":["[pred coll]"],"description-html":"

Returns a vector of the items in coll for which (pred item) returns true.

\n

pred must be free of side-effects.

\n"},"cljs.core/finally":{"full-name":"cljs.core/finally","signature":["[expr*]"],"description-html":"

finally should be the last form inside of a try expression. It is optional.

\n

finally clauses are always evaluated for their side effects whether there was\nan error or not, but they are never the return value of a try expression.

\n","related":["cljs.core/try","cljs.core/catch","cljs.core/throw"],"type":"special form"},"cljs.core/find":{"full-name":"cljs.core/find","signature":["[coll k]"],"description-html":"

Returns the map entry for key k, or nil if k is not found.

\n","related":["cljs.core/get","cljs.core/get-in"]},"cljs.core/first":{"full-name":"cljs.core/first","signature":["[coll]"],"description-html":"

Returns the first item in coll and calls seq on its argument.

\n

Returns nil when coll is nil.

\n","related":["cljs.core/rest","cljs.core/next","cljs.core/nth","cljs.core/second","cljs.core/take","cljs.core/ffirst"]},"cljs.core/flatten":{"full-name":"cljs.core/flatten","signature":["[x]"],"description-html":"

Takes any nested combination of sequential things (lists, vectors, etc.) and\nreturns their contents as a single, flat sequence.

\n

(flatten nil) returns nil.

\n"},"cljs.core/fn":{"full-name":"cljs.core/fn","signature":["[name? [params*] prepost-map? body]","[name? ([params*] prepost-map? body)+]"],"description-html":"

Defines a function.

\n

name? is an optional name of the function to be used inside body. This is\nuseful for recursive calls. Note that name? in fn is not the same as the\nname argument to defn, which defines a global symbol for the function.

\n

params* are the arguments to the function and a binding form for the symbols\nthat the arguments will take inside the body of the function. Functions can have\narity of 0-20 and there is no runtime enforcement of arity when calling a\nfunction (just like in JavaScript).

\n

prepost-map? is an optional map with optional keys :pre and :post that\ncontain collections of pre or post conditions\nfor the function.

\n

body is a series of expressions that execute when the function is called. The\narguments to the function are mapped to symbols in params* and are available\nin body. The value of the last expression in body is the return value of\ncalling the function.

\n","related":["cljs.core/defn","cljs.core/defn-"],"type":"special form"},"cljs.core/fn?":{"full-name":"cljs.core/fn?","signature":["[f]"],"description-html":"

Returns true if f is a function, false otherwise.

\n","related":["cljs.core/ifn?"]},"cljs.core/fnext":{"full-name":"cljs.core/fnext","signature":["[coll]"],"description-html":"

Same as (first (next coll))

\n","related":["cljs.core/ffirst","cljs.core/second"]},"cljs.core/fnil":{"full-name":"cljs.core/fnil","signature":["[f x]","[f x y]","[f x y z]"],"description-html":"

Takes a function f, and returns a function that calls f, replacing a nil\nfirst argument to f with the supplied value x. Higher arity versions can\nreplace arguments in the second and third positions (y, z).

\n

Note that the function f can take any number of arguments, not just the one(s)\nbeing nil-patched.

\n"},"cljs.core/for":{"full-name":"cljs.core/for","signature":["[seq-exprs body-expr]"],"description-html":"

List comprehension.

\n

Takes a vector of one or more binding-form/collection-expr pairs, each followed\nby zero or more modifiers, and yields a lazy sequence of evaluations of expr.

\n

Collections are iterated in a nested fashion, rightmost fastest, and nested\ncoll-exprs can refer to bindings created in prior binding-forms. Supported\nmodifiers are: :let [binding-form expr ...], :while test, :when test.

\n","related":["cljs.core/doseq","cljs.core/doall","cljs.core/recur"],"type":"macro"},"cljs.core/frequencies":{"full-name":"cljs.core/frequencies","signature":["[coll]"],"description-html":"

Returns a map from distinct items in coll to the number of times they appear.

\n

(frequencies [:a :a :b]) => {:a 2, :b 1}

\n","related":["cljs.core/group-by","cljs.core/distinct"]},"cljs.core/get":{"full-name":"cljs.core/get","signature":["[o k]","[o k not-found]"],"description-html":"

Returns the value mapped to key k.

\n

Returns not-found or nil if k is not present in o.

\n","related":["cljs.core/get-in"]},"cljs.core/get-in":{"full-name":"cljs.core/get-in","signature":["[m ks]","[m ks not-found]"],"description-html":"

Returns the value in a nested associative structure, where ks is a sequence of\nkeys.

\n

Returns nil if the key is not found, or not-found if supplied.

\n","related":["cljs.core/assoc-in","cljs.core/update-in","cljs.core/find","cljs.core/get"]},"cljs.core/get-validator":{"full-name":"cljs.core/get-validator","signature":["[a]"],"description-html":"

Returns the validator function for atom a.

\n","related":["cljs.core/atom","cljs.core/set-validator!"]},"cljs.core/group-by":{"full-name":"cljs.core/group-by","signature":["[f coll]"],"description-html":"

Returns a map of the elements of coll keyed by the result of running f on\neach element.

\n

The value at each key will be a vector of the corresponding elements in the\norder they appeared in coll.

\n","related":["cljs.core/partition-by","cljs.core/frequencies"]},"cljs.core/hash-map":{"full-name":"cljs.core/hash-map","signature":["[& keyvals]"],"description-html":"

Returns a new hash map with supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/array-map","cljs.core/sorted-map"]},"cljs.core/hash-set":{"full-name":"cljs.core/hash-set","signature":["[]","[& keys]"],"description-html":"

Returns a new hash set with supplied keys.

\n

Any equal keys are handled as if by repeated uses of conj.

\n","related":["cljs.core/set","cljs.core/sorted-set"]},"cljs.core/identical?":{"full-name":"cljs.core/identical?","signature":["[x y]"],"description-html":"

Returns true if x and y are the same object, false otherwise.

\n","related":["cljs.core/=","cljs.core/=="]},"cljs.core/identity":{"full-name":"cljs.core/identity","signature":["[x]"],"description-html":"

Returns its argument.

\n","related":["cljs.core/nil?"]},"cljs.core/if":{"full-name":"cljs.core/if","signature":["[test then else?]"],"description-html":"

If test is not false or nil, then is evaluated and returned. Otherwise,\nelse? is evaluated and returned. else? defaults to nil if not provided.

\n

if is one of ClojureScript's special forms\nand is a fundamental building block of the language. All other conditionals in\nClojureScript are based on ifs notion of truthiness (ie: anything other than\nfalse or nil).

\n","related":["cljs.core/cond","cljs.core/when","cljs.core/if-let","cljs.core/if-not"],"type":"special form"},"cljs.core/if-let":{"full-name":"cljs.core/if-let","signature":["[[x test] then]","[[x test] then else]"],"description-html":"

When test is logical true, evaluates then with the value of test bound to\nx. Otherwise, evaluates else with no bindings.

\n

else defaults to nil.

\n","related":["cljs.core/when-let","cljs.core/if"],"type":"macro"},"cljs.core/if-not":{"full-name":"cljs.core/if-not","signature":["[test then]","[test then else]"],"description-html":"

If test is false or nil, evaluates and returns then. Otherwise, evaluates\nand returns else. else defaults to nil if not provided.

\n","related":["cljs.core/if","cljs.core/when-not"],"type":"macro"},"cljs.core/if-some":{"full-name":"cljs.core/if-some","signature":["[[x test] then]","[[x test] then else]"],"description-html":"

If test is not nil, evaluates then with x bound to the value of test. If\nnot, yields else.

\n","related":["cljs.core/when-some"],"type":"macro"},"cljs.core/ifn?":{"full-name":"cljs.core/ifn?","signature":["[f]"],"description-html":"

Returns true if f implements the IFn protocol, false otherwise.

\n

Functions, keywords, map, sets, and vectors can be called as functions.

\n","related":["cljs.core/fn?"]},"cljs.core/inc":{"full-name":"cljs.core/inc","signature":["[x]"],"description-html":"

Returns a number one greater than x.

\n","related":["cljs.core/dec"]},"cljs.core/instance?":{"full-name":"cljs.core/instance?","signature":["[t o]"],"description-html":"

Returns true if o is an instance of type t, false otherwise.

\n","related":["cljs.core/type"]},"cljs.core/int":{"full-name":"cljs.core/int","signature":["[x]"],"description-html":"

Coerces x to an integer by stripping decimal places.

\n","related":["cljs.core/char","cljs.core/integer?"]},"cljs.core/integer?":{"full-name":"cljs.core/integer?","signature":["[n]"],"description-html":"

Returns true if n is an integer, false otherwise.

\n","related":["cljs.core/int"]},"cljs.core/interleave":{"full-name":"cljs.core/interleave","signature":["[c1 c2]","[c1 c2 & colls]"],"description-html":"

Returns a lazy seq of the first item in each collection, then the second items,\nthen the third, etc.

\n","related":["cljs.core/interpose","cljs.core/zipmap"]},"cljs.core/interpose":{"full-name":"cljs.core/interpose","signature":["[sep coll]"],"description-html":"

Returns a lazy seq of the elements of coll separated by sep.

\n","related":["cljs.core/interleave","clojure.string/join"]},"cljs.core/into":{"full-name":"cljs.core/into","signature":["[to from]","[to xform from]"],"description-html":"

Returns a new collection consisting of to with all of the items of from\n"added" using conj.

\n

A transducer may be supplied as xform.

\n","related":["cljs.core/conj"]},"cljs.core/into-array":{"full-name":"cljs.core/into-array","signature":["[aseq]"],"description-html":"

Returns a new JavaScript array from the elements of aseq.

\n","related":["cljs.core/to-array","cljs.core/make-array"]},"cljs.core/iterate":{"full-name":"cljs.core/iterate","signature":["[f x]"],"description-html":"

Returns a lazy sequence of x, (f x), (f (f x)) etc.

\n

f must be free of side-effects.

\n","related":["cljs.core/cycle","cljs.core/repeatedly","cljs.core/repeat"]},"cljs.core/js->clj":{"full-name":"cljs.core/js->clj","signature":["[x]","[x & opts]"],"description-html":"

Recursively transforms JavaScript arrays into ClojureScript vectors, and\nJavaScript objects into ClojureScript maps.

\n

Pass options :keywordize-keys true to recursively convert object property\nnames from strings to keywords.

\n

(js->clj js-data :keywordize-keys true)

\n

Note that js->clj is not optimized for speed and the transit.cljs library is\nrecommended when parsing large amounts of JSON data.

\n","related":["cljs.core/clj->js"]},"cljs.core/js-delete":{"full-name":"cljs.core/js-delete","signature":["[obj key]"],"description-html":"

Deletes property key in JavaScript object obj.

\n

Uses the JavaScript delete operator.

\n","related":["cljs.core/dissoc"]},"cljs.core/js-obj":{"full-name":"cljs.core/js-obj","signature":["[& keyvals]"],"description-html":"

Returns a new JavaScript object using the supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/array"]},"cljs.core/juxt":{"full-name":"cljs.core/juxt","signature":["[f]","[f g]","[f g h]","[f g h & fs]"],"description-html":"

Takes a set of functions and returns a function that is the juxtaposition of\nthose functions.

\n

The returned function takes a variable number of arguments, and returns a vector\ncontaining the result of applying each function to the arguments (left-to-\nright).

\n

((juxt a b c) x) => [(a x) (b x) (c x)]

\n","related":["cljs.core/partial","cljs.core/comp"]},"cljs.core/keep":{"full-name":"cljs.core/keep","signature":["[f]","[f coll]"],"description-html":"

Returns a lazy sequence of the non-nil results of (f item). Note, this means\nfalse return values will be included.

\n

f must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/keep-indexed","cljs.core/map","cljs.core/filter"]},"cljs.core/keep-indexed":{"full-name":"cljs.core/keep-indexed","signature":["[f]","[f coll]"],"description-html":"

Returns a lazy sequence of the non-nil results of (f index item). Note, this\nmeans false return values will be included.

\n

`f must be free of side-effects.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/map-indexed","cljs.core/keep"]},"cljs.core/key":{"full-name":"cljs.core/key","signature":["[map-entry]"],"description-html":"

Returns the key of the map entry.

\n","related":["cljs.core/keys"]},"cljs.core/keys":{"full-name":"cljs.core/keys","signature":["[hash-map]"],"description-html":"

Returns a sequence of the keys in hash-map.

\n","related":["cljs.core/vals"]},"cljs.core/last":{"full-name":"cljs.core/last","signature":["[coll]"],"description-html":"

Returns the last item in coll in linear time.

\n

peek is much faster than last for a vector.

\n","related":["cljs.core/first","cljs.core/next","cljs.core/rest","cljs.core/butlast","cljs.core/take-last"]},"cljs.core/lazy-cat":{"full-name":"cljs.core/lazy-cat","signature":["[& colls]"],"description-html":"

Expands to code which yields a lazy sequence of the concatenation of the\nsupplied collections. Each collections expression is not evaluated until it is\nneeded.

\n\n \n \n \n \n \n \n
CodeExpands To
(lazy-cat x y z)\n
\n(concat (lazy-seq x)\n        (lazy-seq y)\n        (lazy-seq z))
","related":["cljs.core/lazy-seq","cljs.core/concat"],"type":"macro"},"cljs.core/lazy-seq":{"full-name":"cljs.core/lazy-seq","signature":["[& body]"],"description-html":"

Returns a new lazy sequence.

\n","related":["cljs.core/lazy-cat","cljs.core/realized?","cljs.core/doall","cljs.core/iterate"]},"cljs.core/let":{"full-name":"cljs.core/let","signature":["[bindings & body]"],"description-html":"

Binds expressions to symbols and makes those symbols available only within\nbody.

\n

bindings should be a vector with an even number of forms, ie: [a1 b1, a2 b2,\na3 b3]. The first item in a pair (the as) should be a symbol that is assigned\nthe evaluation of the second item (the bs). These symbols (the as) are then\navailable within body (and not outside of body).

\n

Another way to think about this is that the binding symbols in let are like\nlocal defs that are only available within let's scope.

\n

In addition to direct symbol binding, let supports a destructuring syntax to\n"break apart" collections into multiple symbols. This destructuring syntax is\nlike it's own mini-language and allows for succinct code.

\n

let is one of ClojureScript's special forms and is a fundamental building\nblock of the language. Many macros rely on lets binding syntax and scope\nrules.

\n","related":["cljs.core/letfn","cljs.core/if-let"],"type":"special form"},"cljs.core/letfn":{"full-name":"cljs.core/letfn","signature":["[fnspecs & body]"],"description-html":"

Takes a vector of function definitions fnspecs and binds the functions to\ntheir names. All of the names are available in all of the definitions of the\nfunctions as well as body.

\n

fnspecs must be a vector with an even number of forms. See let.

\n

letfn is one of ClojureScript's special forms.

\n","related":["cljs.core/let"],"type":"special form"},"cljs.core/list":{"full-name":"cljs.core/list","signature":["[& items]"],"description-html":"

Creates a new list containing items.

\n","related":["cljs.core/vector","cljs.core/list?"]},"cljs.core/list*":{"full-name":"cljs.core/list*","signature":["[args]","[a args]","[a b args]","[a b c args]","[a b c d & more]"],"description-html":"

Creates a new list containing the items prepended to the rest, the last of which\nwill be treated as a sequence.

\n","related":["cljs.core/list"]},"cljs.core/list?":{"full-name":"cljs.core/list?","signature":["[x]"],"description-html":"

Returns true if x is a list, false otherwise.

\n","related":["cljs.core/seq?","cljs.core/sequential?","cljs.core/coll?"]},"cljs.core/make-array":{"full-name":"cljs.core/make-array","signature":["[size]"],"description-html":"

Creates an empty JavaScript array of size size.

\n","related":["cljs.core/aclone","cljs.core/array"]},"cljs.core/map":{"full-name":"cljs.core/map","signature":["[f]","[f coll]","[f c1 c2]","[f c1 c2 c3]","[f c1 c2 c3 & colls]"],"description-html":"

Returns a lazy sequence of applying function f to every element of coll.

\n

When more than one collection is provided, returns a lazy sequence consisting of\nthe result of applying f to the set of first items of each c, followed by\napplying f to the set of second items in each c, until any one of the cs\nis exhausted. Any remaining items in other cs are ignored. Function f should\naccept number-of-cs arguments.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/map-indexed","cljs.core/pmap","cljs.core/amap","cljs.core/mapcat","cljs.core/keep","cljs.core/juxt"]},"cljs.core/map-indexed":{"full-name":"cljs.core/map-indexed","signature":["[f coll]"],"description-html":"

Returns a lazy sequence consisting of the result of applying f to 0 and the\nfirst item of coll, followed by applying f to 1 and the second item in\ncoll, etc, until coll is exhausted.

\n

Function f should accept 2 arguments, index and item.

\n","related":["cljs.core/map","cljs.core/keep-indexed"]},"cljs.core/map?":{"full-name":"cljs.core/map?","signature":["[x]"],"description-html":"

Returns true if x is a map, false otherwise.

\n","related":["cljs.core/hash-map","cljs.core/sorted-map"]},"cljs.core/mapcat":{"full-name":"cljs.core/mapcat","signature":["[f]","[f & colls]"],"description-html":"

Returns the result of applying concat to the result of applying map to f\nand colls.

\n

Function f should return a collection.

\n

Returns a transducer when no collections are provided.

\n","related":["cljs.core/map","cljs.core/concat"]},"cljs.core/mapv":{"full-name":"cljs.core/mapv","signature":["[f coll]","[f c1 c2]","[f c1 c2 c3]","[f c1 c2 c3 & colls]"],"description-html":"

Returns a vector consisting of the result of applying f to the set of first\nitems of each coll, followed by applying f to the set of second items in each\ncoll, until any one of the colls is exhausted. Any remaining items in other\ncolls are ignored.

\n

Function f should accept number-of-colls arguments.

\n","related":["cljs.core/map"]},"cljs.core/max":{"full-name":"cljs.core/max","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns the greatest number argument.

\n","related":["cljs.core/min","cljs.core/max-key"]},"cljs.core/max-key":{"full-name":"cljs.core/max-key","signature":["[k x]","[k x y]","[k x y & more]"],"description-html":"

Returns the x for which (k x) is greatest.

\n

(k x) should return a number.

\n","related":["cljs.core/max","cljs.core/min-key"]},"cljs.core/memoize":{"full-name":"cljs.core/memoize","signature":["[f]"],"description-html":"

Returns a memoized version of a referentially transparent function.

\n

A memoized version of a function keeps a cache of the mappings from arguments to\nresults in memory. When calls with the same arguments are repeated often, a\nmemoized function has higher performance at the expense of higher memory usage.

\n"},"cljs.core/merge":{"full-name":"cljs.core/merge","signature":["[& maps]"],"description-html":"

Returns a map that consists of the rest of the maps conj-ed onto the first.

\n

If a key occurs in more than one map, the mapping from the rightmost map will\n"win".

\n","related":["cljs.core/merge-with","cljs.core/hash-map"]},"cljs.core/merge-with":{"full-name":"cljs.core/merge-with","signature":["[f & maps]"],"description-html":"

Returns a map that consists of the rest of the maps conj-ed onto the first.

\n

If a key occurs in more than one map, the mapping(s) from the latter (left-to-\nright) will be combined with the mapping in the result by calling (f val-in-\nresult val-in-latter).

\n","related":["cljs.core/merge"]},"cljs.core/min":{"full-name":"cljs.core/min","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns the least number argument.

\n","related":["cljs.core/max","cljs.core/min-key"]},"cljs.core/min-key":{"full-name":"cljs.core/min-key","signature":["[k x]","[k x y]","[k x y & more]"],"description-html":"

Returns the x for which (k x) is least.

\n

(k x) should return a number.

\n","related":["cljs.core/min","cljs.core/max-key"]},"cljs.core/mod":{"full-name":"cljs.core/mod","signature":["[n d]"],"description-html":"

Returns the modulus of dividing numerator n by denominator d.

\n

Returns NaN when d is 0 (divide by 0 error).

\n

Truncates toward negative infinity.

\n","related":["cljs.core/rem"]},"cljs.core/name":{"full-name":"cljs.core/name","signature":["[x]"],"description-html":"

Returns a string value of a keyword, string, or symbol.

\n

(name :foo) => "foo"

\n

(name "foo") => "foo"

\n

(name 'foo) => "foo"

\n"},"cljs.core/neg?":{"full-name":"cljs.core/neg?","signature":["[n]"],"description-html":"

Returns true if n is less than 0, false otherwise.

\n","related":["cljs.core/pos?","cljs.core/zero?"]},"cljs.core/next":{"full-name":"cljs.core/next","signature":["[coll]"],"description-html":"

Returns a sequence of the items after the first and calls seq on its argument.

\n

Returns nil if coll is empty.

\n","related":["cljs.core/rest","cljs.core/first","cljs.core/fnext"]},"cljs.core/nfirst":{"full-name":"cljs.core/nfirst","signature":["[coll]"],"description-html":"

Same as (next (first coll)).

\n","related":["cljs.core/next"]},"cljs.core/nil?":{"full-name":"cljs.core/nil?","signature":["[x]"],"description-html":"

Returns true if x is nil, false otherwise.

\n","related":["cljs.core/true?","cljs.core/false?","cljs.core/identity"]},"cljs.core/nnext":{"full-name":"cljs.core/nnext","signature":["[coll]"],"description-html":"

Same as (next (next coll)).

\n","related":["cljs.core/next"]},"cljs.core/not":{"full-name":"cljs.core/not","signature":["[x]"],"description-html":"

Returns true if x is logical false, false otherwise.

\n","related":["cljs.core/complement","cljs.core/false?"]},"cljs.core/not-any?":{"full-name":"cljs.core/not-any?","signature":["[pred coll]"],"description-html":"

Returns false if (pred x) is logical true for any x in coll, else true.

\n","related":["cljs.core/every?","cljs.core/some"]},"cljs.core/not-empty":{"full-name":"cljs.core/not-empty","signature":["[coll]"],"description-html":"

Returns nil if coll is empty, else returns coll.

\n","related":["cljs.core/empty"]},"cljs.core/not-every?":{"full-name":"cljs.core/not-every?","signature":["[pred coll]"],"description-html":"

Returns false if (pred x) is logical true for every x in coll, else true.

\n","related":["cljs.core/every?","cljs.core/not-any?","cljs.core/some"]},"cljs.core/not=":{"full-name":"cljs.core/not=","signature":["[x]","[x y]","[x y & more]"],"description-html":"

Returns the opposite of =.

\n

Same as (not (= x y))

\n","related":["cljs.core/=","cljs.core/not"]},"cljs.core/ns":{"full-name":"cljs.core/ns","signature":["[name & references]"],"description-html":"

Sets the namespace of the file.

\n

ns must be the first form in a .cljs file and there can only be one ns\ndeclaration per file. Namespaces must match the file name of their respective\n.cljs files, with the exception that dashes in namespaces become underscores\nin filenames. Thus, (ns foo.bar-biz.baz) should be the first form in file\nfoo/bar_biz/baz.cljs.

\n

references can be zero or more forms used to import other namespaces, symbols,\nand libraries into the current namespace.

\n","type":"special form"},"cljs.core/nth":{"full-name":"cljs.core/nth","signature":["[coll n]","[coll n not-found]"],"description-html":"

Returns the value at index n or not-found if the index is out of bounds.

\n

nth will throw an exception if n is out of bounds and not-found is not\nsupplied.

\n

nth works for Strings, Arrays, Regex Matchers, Lists, and Sequences. For\nSequences, nth takes O(n) time.

\n","related":["cljs.core/first","cljs.core/second","cljs.core/nthnext","cljs.core/get"]},"cljs.core/nthnext":{"full-name":"cljs.core/nthnext","signature":["[coll n]"],"description-html":"

Returns the nth next of coll.

\n

Returns (seq coll) when n is 0.

\n","related":["cljs.core/nth","cljs.core/drop","cljs.core/nthrest"]},"cljs.core/nthrest":{"full-name":"cljs.core/nthrest","signature":["[coll n]"],"description-html":"

Returns the nth rest of coll.

\n

Returns coll when n is 0.

\n","related":["cljs.core/drop","cljs.core/nthnext","cljs.core/nth"]},"cljs.core/number?":{"full-name":"cljs.core/number?","signature":["[n]"],"description-html":"

Returns true if n is a number, false otherwise.

\n","related":["cljs.core/integer?"]},"cljs.core/object?":{"full-name":"cljs.core/object?","signature":["[x]"],"description-html":"

Returns true if x is a JavaScript object, false otherwise.

\n","related":["cljs.core/array?"]},"cljs.core/odd?":{"full-name":"cljs.core/odd?","signature":["[n]"],"description-html":"

Returns true if n is an odd number.

\n

Throws an exception if n is not an integer.

\n","related":["cljs.core/even?"]},"cljs.core/or":{"full-name":"cljs.core/or","signature":["[]","[x]","[x & next]"],"description-html":"

Evaluates arguments one at a time from left to right. If an argument returns\nlogical true, or returns that value and doesn't evaluate any of the other\narguments, otherwise it returns the value of the last argument.

\n

(or) returns nil.

\n","related":["cljs.core/and","cljs.core/if"],"type":"macro"},"cljs.core/partial":{"full-name":"cljs.core/partial","signature":["[f]","[f arg1]","[f arg1 arg2]","[f arg1 arg2 arg3]","[f arg1 arg2 arg3 & more]"],"description-html":"

Takes a function f and fewer than the normal arguments to f. Returns a\nfunction that takes a variable number of additional arguments. When called, the\nreturned function calls f with the original arguments plus the additional\narguments.

\n

((partial f a b) c d) => (f a b c d)

\n","related":["cljs.core/comp","cljs.core/juxt"]},"cljs.core/partition":{"full-name":"cljs.core/partition","signature":["[n coll]","[n step coll]","[n step pad coll]"],"description-html":"

Returns a lazy sequence of lists of n items each, at offsets step apart.

\n

If step is not supplied, defaults to n, i.e. the partitions do not overlap.

\n

If a pad collection is supplied, its elements will be used as necessary to\ncomplete the last partition up to n items.

\n

Returns a partition with less than n items if there are not enough padding\nelements.

\n","related":["cljs.core/partition-all","cljs.core/split-at","cljs.core/partition-by"]},"cljs.core/partition-all":{"full-name":"cljs.core/partition-all","signature":["[n]","[n coll]","[n step coll]"],"description-html":"

Returns a lazy sequence of lists like partition, but may include partitions\nwith fewer than n items at the end.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/partition","cljs.core/partition-by"]},"cljs.core/partition-by":{"full-name":"cljs.core/partition-by","signature":["[f]","[f coll]"],"description-html":"

Applies f to each value in coll, splitting it each time f returns a new\nvalue. Returns a lazy sequence of partitions.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/partition","cljs.core/partition-all","cljs.core/group-by"]},"cljs.core/peek":{"full-name":"cljs.core/peek","signature":["[coll]"],"description-html":"

Returns the first element of a list; same as first.

\n

Returns the last element of a vector, and much more efficient than using last.

\n

Returns nil if coll is empty.

\n","related":["cljs.core/first","cljs.core/pop","cljs.core/conj"]},"cljs.core/pop":{"full-name":"cljs.core/pop","signature":["[coll]"],"description-html":"

For a list, returns a new list without the first item.

\n

For a vector, returns a new vector without the last item.

\n","related":["cljs.core/peek","cljs.core/rest","cljs.core/conj"]},"cljs.core/pos?":{"full-name":"cljs.core/pos?","signature":["[n]"],"description-html":"

Returns true if n is greater than 0, false otherwise.

\n","related":["cljs.core/neg?","cljs.core/zero?"]},"cljs.core/quot":{"full-name":"cljs.core/quot","signature":["[n d]"],"description-html":"

Returns the quotient of dividing numerator n by denominator d.

\n

Returns NaN when d is 0 (divide by 0 error).

\n","related":["cljs.core/rem","cljs.core/mod"]},"cljs.core/rand":{"full-name":"cljs.core/rand","signature":["[]","[n]"],"description-html":"

Returns a random floating point number between 0 inclusive and n exclusive.

\n

n defaults to 1.

\n","related":["cljs.core/rand-int","cljs.core/rand-nth"]},"cljs.core/rand-int":{"full-name":"cljs.core/rand-int","signature":["[n]"],"description-html":"

Returns a random integer between 0 inclusive and n exclusive.

\n","related":["cljs.core/rand"]},"cljs.core/rand-nth":{"full-name":"cljs.core/rand-nth","signature":["[coll]"],"description-html":"

Returns a random element from a sequential collection coll.

\n

Has the same performance characteristics as nth.

\n","related":["cljs.core/rand"]},"cljs.core/range":{"full-name":"cljs.core/range","signature":["[]","[end]","[start end]","[start end step]"],"description-html":"

Returns a lazy sequence of nums from start (inclusive) to end (exclusive),\nby step, where start defaults to 0, step to 1, and end to infinity.

\n","related":["cljs.core/repeat"]},"cljs.core/re-find":{"full-name":"cljs.core/re-find","signature":["[re s]"],"description-html":"

Returns the first regex match, if any, of s to re, using re.exec(s).

\n

Returns a vector, containing first the matching substring, then any capturing\ngroups if the regular expression contains capturing groups.

\n"},"cljs.core/re-matches":{"full-name":"cljs.core/re-matches","signature":["[re s]"],"description-html":"

Returns the result of (re-find re s) if re fully matches s.

\n"},"cljs.core/re-pattern":{"full-name":"cljs.core/re-pattern","signature":["[s]"],"description-html":"

Returns an instance of RegExp which has compiled the provided string.

\n"},"cljs.core/re-seq":{"full-name":"cljs.core/re-seq","signature":["[re s]"],"description-html":"

Returns a lazy sequence of successive matches of regex re in string s.

\n","related":["cljs.core/re-find","cljs.core/re-groups","cljs.core/re-pattern","cljs.core/re-matcher","cljs.core/re-matches","cljs.core/subs","clojure.string/split"]},"cljs.core/realized?":{"full-name":"cljs.core/realized?","signature":["[x]"],"description-html":"

Returns true if a value has been produced for a lazy sequence.

\n","related":["cljs.core/lazy-seq"]},"cljs.core/reduce":{"full-name":"cljs.core/reduce","signature":["[f coll]","[f val coll]"],"description-html":"

f should be a function of 2 arguments. If val is not supplied, returns the\nresult of applying f to the first 2 items in coll, then applying f to that\nresult and the 3rd item, etc.

\n

If coll contains no items, f must accept no arguments as well, and reduce\nreturns the result of calling f with no arguments.

\n

If coll has only 1 item, it is returned and f is not called.

\n

If val is supplied, returns the result of applying f to val and the first\nitem in coll, then applying f to that result and the 2nd item, etc.

\n

If coll contains no items, returns val and f is not called.

\n","related":["cljs.core/reductions","cljs.core/apply","cljs.core/frequencies"]},"cljs.core/reduce-kv":{"full-name":"cljs.core/reduce-kv","signature":["[f init coll]"],"description-html":"

Reduces an associative collection.

\n

f should be a function of 3 arguments. Returns the result of applying f to\ninit, the first key and the first value in coll, then applying f to that\nresult and the 2nd key and value, etc.

\n

If coll contains no entries, returns init and f is not called.

\n

Note that reduce-kv is supported on vectors, where the keys will be the\nordinals.

\n","related":["cljs.core/reduce"]},"cljs.core/reductions":{"full-name":"cljs.core/reductions","signature":["[f coll]","[f init coll]"],"description-html":"

Returns a lazy sequence of the intermediate values of the reduction (as per\nreduce) of coll by f, starting with init.

\n","related":["cljs.core/reduce"]},"cljs.core/rem":{"full-name":"cljs.core/rem","signature":["[n d]"],"description-html":"

Returns the remainder of dividing numerator n by denominator d.

\n

Returns NaN when d is 0 (divide by 0 error).

\n","related":["cljs.core/quot","cljs.core/mod"]},"cljs.core/remove":{"full-name":"cljs.core/remove","signature":["[pred]","[pred coll]"],"description-html":"

Returns a lazy sequence of the items in coll for which (pred item) returns\nfalse.

\n

pred must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/filter"]},"cljs.core/remove-watch":{"full-name":"cljs.core/remove-watch","signature":["[a key]"],"description-html":"

Removes a watch function identified by key from atom a. The function must\nhave originally been set by add-watch.

\n","related":["cljs.core/add-watch"]},"cljs.core/repeat":{"full-name":"cljs.core/repeat","signature":["[x]","[n x]"],"description-html":"

Returns a lazy sequence of xs.

\n

The length of the sequence is infinite, or n if provided.

\n","related":["cljs.core/repeatedly","cljs.core/cycle","cljs.core/constantly","cljs.core/dotimes"]},"cljs.core/repeatedly":{"full-name":"cljs.core/repeatedly","signature":["[f]","[n f]"],"description-html":"

Takes a function f of no args, presumably with side effects, and returns an\ninfinite (or length n if supplied) lazy sequence of calls to it.

\n","related":["cljs.core/repeat","cljs.core/iterate","cljs.core/lazy-seq","cljs.core/dotimes","cljs.core/constantly"]},"cljs.core/replace":{"full-name":"cljs.core/replace","signature":["[smap]","[smap coll]"],"description-html":"

Given a map of replacement pairs smap and a vector/collection coll, returns\na vector/seq with any elements = to a key in smap replaced with the\ncorresponding val in smap.

\n

Returns a transducer when coll is not provided.

\n","related":["cljs.core/map","clojure.walk/prewalk-replace","clojure.walk/postwalk-replace"]},"cljs.core/reset!":{"full-name":"cljs.core/reset!","signature":["[a new-value]"],"description-html":"

Sets the value of atom a to new-value without regard for the current value.

\n

Returns new-value.

\n","related":["cljs.core/swap!","cljs.core/compare-and-set!","cljs.core/atom"]},"cljs.core/rest":{"full-name":"cljs.core/rest","signature":["[coll]"],"description-html":"

Returns a possibly empty sequence of the items after the first item.

\n

Calls seq on its argument.

\n","related":["cljs.core/next","cljs.core/first","cljs.core/drop","cljs.core/pop"]},"cljs.core/reverse":{"full-name":"cljs.core/reverse","signature":["[coll]"],"description-html":"

Returns a sequence of the items in coll in reverse order. Not lazy.

\n","related":["cljs.core/rseq"]},"cljs.core/reversible?":{"full-name":"cljs.core/reversible?","signature":["[coll]"],"description-html":"

Returns true if coll implements the IReversible protocol, false otherwise.

\n

Vectors, sorted maps, and sorted sets implement IReversible.

\n"},"cljs.core/rseq":{"full-name":"cljs.core/rseq","signature":["[coll]"],"description-html":"

Returns a sequence of the items in coll in reverse order in constant time.

\n

Returns nil if coll is empty.

\n

coll must be a vector or a sorted-map.

\n","related":["cljs.core/reverse"]},"cljs.core/rsubseq":{"full-name":"cljs.core/rsubseq","signature":["[sc test key]","[sc start-test start-key end-test end-key]"],"description-html":"

sc must be a sorted collection.

\n

test, start-test, end-test must be <, <=, > or >=.

\n

Returns a reverse sequence of those entries with keys ek for which\n(test (.. sc comparator (compare ek key)) 0) is true.

\n","related":["cljs.core/subseq"]},"cljs.core/second":{"full-name":"cljs.core/second","signature":["[coll]"],"description-html":"

Returns the second item in coll.

\n

Same as (first (next coll))

\n","related":["cljs.core/first","cljs.core/nth","cljs.core/fnext","cljs.core/next"]},"cljs.core/select-keys":{"full-name":"cljs.core/select-keys","signature":["[map keys]"],"description-html":"

Returns a map containing only those entries in map whose key is in keys.

\n"},"cljs.core/seq":{"full-name":"cljs.core/seq","signature":["[coll]"],"description-html":"

Returns a sequence on the collection. If the collection is empty, returns nil.

\n

(seq nil) returns nil.

\n

seq also works on strings.

\n","related":["cljs.core/seq?","cljs.core/empty?","cljs.core/iterator-seq"]},"cljs.core/seq?":{"full-name":"cljs.core/seq?","signature":["[x]"],"description-html":"

Returns true if x is a sequence, false otherwise.

\n

All collections can be converted into a sequence using seq.

\n","related":["cljs.core/seq","cljs.core/sequential?","cljs.core/vector?","cljs.core/coll?","cljs.core/list?","cljs.core/map?","cljs.core/set?"]},"cljs.core/sequential?":{"full-name":"cljs.core/sequential?","signature":["[coll]"],"description-html":"

Returns true if coll implements the ISequential protocol, false otherwise.

\n

Lists and vectors are sequential.

\n","related":["cljs.core/seq?","cljs.core/coll?"]},"cljs.core/set":{"full-name":"cljs.core/set","signature":["[coll]"],"description-html":"

Returns a set of the distinct elements of coll.

\n","related":["cljs.core/hash-set","cljs.core/sorted-set","cljs.core/conj","cljs.core/disj","cljs.core/distinct","clojure.set/join","clojure.set/select","clojure.set/difference","clojure.set/intersection","clojure.set/union","clojure.set/index","clojure.set/project","clojure.set/rename","clojure.set/rename-keys","clojure.set/map-invert"]},"cljs.core/set!":{"full-name":"cljs.core/set!","signature":["[js-var val]"],"description-html":"

Sets js-var to val using the JavaScript = operator.

\n","related":["cljs.core/aset","cljs.core/reset!"]},"cljs.core/set-validator!":{"full-name":"cljs.core/set-validator!","signature":["[a fn]"],"description-html":"

Sets a validator function for atom a.

\n

fn must be nil or a side-effect-free function of one argument, which will be\npassed the intended new state on any state change. fn should return false or\nthrow an Error if the new state is unacceptable.

\n

If the current value of a is unacceptable to fn when set-validator! is\ncalled, an Error will be thrown and the validator will not be set.

\n

(set-validator! my-atom nil) will remove the validator from my-atom.

\n","related":["cljs.core/atom","cljs.core/get-validator"]},"cljs.core/set?":{"full-name":"cljs.core/set?","signature":["[x]"],"description-html":"

Returns true if x is a set, false otherwise.

\n","related":["cljs.core/set"]},"cljs.core/shuffle":{"full-name":"cljs.core/shuffle","signature":["[coll]"],"description-html":"

Returns a random permutation of coll.

\n"},"cljs.core/some":{"full-name":"cljs.core/some","signature":["[pred coll]"],"description-html":"

Returns the first logical true value of (pred x) for any x in coll, else\nnil.

\n

A common idiom is to use a set as pred, for example this will return :fred if\n:fred is in the sequence, otherwise nil: (some #{:fred} coll)

\n","related":["cljs.core/every?","cljs.core/not-any?","cljs.core/keep","cljs.core/keep-indexed","cljs.core/some-fn"]},"cljs.core/some->":{"full-name":"cljs.core/some->","signature":["[expr & forms]"],"description-html":"

When expr is not nil, threads it into the first form (via ->), and when that\nresult is not nil, through the next, etc.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/some->>","cljs.core/some"],"type":"macro"},"cljs.core/some->>":{"full-name":"cljs.core/some->>","signature":["[expr & forms]"],"description-html":"

When expr is not nil, threads it into the first form (via ->>), and when\nthat result is not nil, through the next, etc.

\n","related":["cljs.core/->","cljs.core/->>","cljs.core/some->","cljs.core/some"],"type":"macro"},"cljs.core/some-fn":{"full-name":"cljs.core/some-fn","signature":["[p]","[p1 p2]","[p1 p2 p3]","[p1 p2 p3 & ps]"],"description-html":"

Takes a set of predicate functions and returns a function f that returns the\nfirst logical true value returned by one of its composing predicates against any\nof its arguments, else it returns logical false.

\n

Note that f is short-circuiting in that it will stop execution on the first\nargument that triggers a logical true result against the original predicates.

\n","related":["cljs.core/every-pred","cljs.core/some","cljs.core/or"]},"cljs.core/some?":{"full-name":"cljs.core/some?","signature":["[x]"],"description-html":"

Returns true if x is not nil, false otherwise.

\n","related":["cljs.core/true?","cljs.core/nil?"]},"cljs.core/sort":{"full-name":"cljs.core/sort","signature":["[coll]","[comp coll]"],"description-html":"

Returns a sorted sequence of the items in coll.

\n

comp can be a boolean-valued comparison funcion, or a -/0/+ valued comparator.

\n

comp defaults to compare.

\n","related":["cljs.core/sort-by"]},"cljs.core/sort-by":{"full-name":"cljs.core/sort-by","signature":["[keyfn coll]","[keyfn comp coll]"],"description-html":"

Returns a sorted sequence of the items in coll, where the sort order is\ndetermined by comparing (keyfn item).

\n

comp can be boolean-valued comparison function, or a -/0/+ valued comparator.

\n

comp defaults to compare.

\n","related":["cljs.core/sort","cljs.core/compare"]},"cljs.core/sorted-map":{"full-name":"cljs.core/sorted-map","signature":["[& keyvals]"],"description-html":"

Returns a new sorted map with supplied mappings.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/sorted-map-by","cljs.core/subseq","cljs.core/rsubseq","cljs.core/sorted-set","cljs.core/array-map","cljs.core/hash-map"]},"cljs.core/sorted-map-by":{"full-name":"cljs.core/sorted-map-by","signature":["[comparator & keyvals]"],"description-html":"

Returns a new sorted map with supplied mappings, using the supplied comparator\nfunction.

\n

keyvals must be an even number of forms.

\n","related":["cljs.core/sorted-map","cljs.core/subseq","cljs.core/rsubseq","cljs.core/sorted-set-by"]},"cljs.core/sorted-set":{"full-name":"cljs.core/sorted-set","signature":["[& keys]"],"description-html":"

Returns a new sorted set with supplied keys.

\n","related":["cljs.core/sorted-set-by","cljs.core/subseq","cljs.core/rsubseq","cljs.core/sorted-map"]},"cljs.core/sorted-set-by":{"full-name":"cljs.core/sorted-set-by","signature":["[comparator & keys]"],"description-html":"

Returns a new sorted set with supplied keys, using the supplied comparator.

\n","related":["cljs.core/sorted-set","cljs.core/sorted-map-by","cljs.core/compare"]},"cljs.core/sorted?":{"full-name":"cljs.core/sorted?","signature":["[coll]"],"description-html":"

Returns true if coll implements the ISorted protocol, false otherwise.

\n

Sorted maps and sorted sets implement ISorted.

\n","related":["cljs.core/sorted-map","cljs.core/sorted-set"]},"cljs.core/split-at":{"full-name":"cljs.core/split-at","signature":["[n coll]"],"description-html":"

Returns a vector of [(take n coll) (drop n coll)].

\n","related":["cljs.core/split-with","clojure.string/split"]},"cljs.core/split-with":{"full-name":"cljs.core/split-with","signature":["[pred coll]"],"description-html":"

Returns a vector of [(take-while pred coll) (drop-while pred coll)]

\n","related":["cljs.core/split-at","clojure.string/split","cljs.core/take-while","cljs.core/drop-while"]},"cljs.core/str":{"full-name":"cljs.core/str","signature":["[]","[x]","[x & ys]"],"description-html":"

(str) and (str nil) return the empty string.

\n

(str x) returns x.toString().

\n

With more than one argument, returns the concatenation of the str values of\nthe arguments.

\n"},"cljs.core/string?":{"full-name":"cljs.core/string?","signature":["[x]"],"description-html":"

Returns true if x is a string, false otherwise.

\n"},"cljs.core/subs":{"full-name":"cljs.core/subs","signature":["[s start]","[s start end]"],"description-html":"

Returns the substring of s beginning at start inclusive, and ending at end\nexclusive.

\n

end defaults to the length of the string.

\n"},"cljs.core/subseq":{"full-name":"cljs.core/subseq","signature":["[sc test key]","[sc start-test start-key end-test end-key]"],"description-html":"

sc must be a sorted collection.

\n

test, start-test, end-test must be <, <=, > or >=.

\n

Returns a sequence of those entries with keys ek for which\n(test (.. sc comparator (compare ek key)) 0) is true.

\n","related":["cljs.core/rsubseq","cljs.core/sorted-map","cljs.core/sorted-set","cljs.core/sorted-map-by","cljs.core/sorted-set-by"]},"cljs.core/subvec":{"full-name":"cljs.core/subvec","signature":["[v start]","[v start end]"],"description-html":"

Returns a persistent vector of the items in v from start inclusive to end\nexclusive.

\n

If end is not supplied, defaults to (count v).

\n

This operation is O(1) and very fast, as the resulting vector shares structure\nwith the original and no trimming is done.

\n","related":["cljs.core/vector","cljs.core/vector?"]},"cljs.core/swap!":{"full-name":"cljs.core/swap!","signature":["[a f]","[a f x]","[a f x y]","[a f x y & more]"],"description-html":"

Atomically swaps the value of atom to be: (apply f current-value-of-atom\nargs)

\n

Note that f may be called multiple times, and thus should be free of side\neffects.

\n

Returns the value that was swapped in.

\n","related":["cljs.core/atom","cljs.core/reset!"]},"cljs.core/take":{"full-name":"cljs.core/take","signature":["[n]","[n coll]"],"description-html":"

Returns a lazy sequence of the first n items in coll. Returns all the items\nif there are fewer than n.

\n

Returns a stateful transducer when no collection is provided.

\n","related":["cljs.core/drop","cljs.core/take-while","cljs.core/take-last","cljs.core/take-nth"]},"cljs.core/take-last":{"full-name":"cljs.core/take-last","signature":["[n coll]"],"description-html":"

Returns a sequence of the last n items in coll.

\n

Depending on the type of collection, take-last may be no faster than linear\ntime. For vectors, please use subvec.

\n","related":["cljs.core/last","cljs.core/butlast","cljs.core/drop-last"]},"cljs.core/take-nth":{"full-name":"cljs.core/take-nth","signature":["[n]","[n coll]"],"description-html":"

Returns a lazy seq of every nth item in coll.

\n

Returns a stateful transducer when no collection is provided.

\n"},"cljs.core/take-while":{"full-name":"cljs.core/take-while","signature":["[pred]","[pred coll]"],"description-html":"

Returns a lazy sequence of successive items from coll while (pred item)\nreturns true. pred must be free of side-effects.

\n

Returns a transducer when no collection is provided.

\n","related":["cljs.core/drop-while","cljs.core/split-with"]},"cljs.core/throw":{"full-name":"cljs.core/throw","signature":["[expr]"],"description-html":"

expr is evaluated and thrown, hopefully to be caught by a try expression.

\n

(throw (js/Error. "Oops!"))

\n","related":["cljs.core/try","cljs.core/catch","cljs.core/finally"],"type":"special form"},"cljs.core/to-array-2d":{"full-name":"cljs.core/to-array-2d","signature":["[coll]"],"description-html":"

Returns a (potentially-ragged) 2-dimensional JavaScript array containing the\ncontents of coll.

\n","related":["cljs.core/to-array"]},"cljs.core/tree-seq":{"full-name":"cljs.core/tree-seq","signature":["[branch? children root]"],"description-html":"

Returns a lazy sequence of the nodes in a tree, via a depth-first walk.

\n

branch? must be a function of one argument that returns true if passed a node\nthat can have children (but may not).

\n

children must be a function of one argument that returns a sequence of the\nchildren. children will only be called on nodes for which branch? returns\ntrue.

\n

root is the root node of the tree.

\n"},"cljs.core/true?":{"full-name":"cljs.core/true?","signature":["[x]"],"description-html":"

Returns true if x is the value true, false otherwise.

\n","related":["cljs.core/false?"]},"cljs.core/try":{"full-name":"cljs.core/try","signature":["[expr* catch-clause* finally-clause?]"],"description-html":"

The expressions (expr*) are evaluated and, if no exceptions occur, the value\nof the last is returned.

\n

If an exception occurs and catch clauses (catch-clause*) are provided, each is\nexamined in turn and the first for which the thrown exception is an instance of\nthe named class is considered a matching catch clause. If there is a matching\ncatch clause, its expressions are evaluated in a context in which name is bound\nto the thrown exception, and the value of the last is the return value of the\nfunction.

\n

If there is no matching catch clause, the exception propagates out of the\nfunction. Before returning, normally or abnormally, any finally-clause?\nexpressions will be evaluated for their side effects.

\n

try is one of ClojureScript's special forms.

\n","related":["cljs.core/catch","cljs.core/finally","cljs.core/throw"],"type":"special form"},"cljs.core/unsigned-bit-shift-right":{"full-name":"cljs.core/unsigned-bit-shift-right","signature":["[x n]"],"description-html":"

Bitwise shift right with zero fill

\n","related":["cljs.core/bit-shift-right"]},"cljs.core/update-in":{"full-name":"cljs.core/update-in","signature":["[m [k & ks] f]","[m [k & ks] f a]","[m [k & ks] f a b]","[m [k & ks] f a b c]","[m [k & ks] f a b c & args]"],"description-html":"

"Updates" a value in a nested associative structure, where ks is a sequence of\nkeys and f is a function that will take the old value and any supplied\narguments and return the new value. Returns a new nested structure.

\n

If any levels do not exist, hash-maps will be created.

\n","related":["cljs.core/assoc-in","cljs.core/get-in"]},"cljs.core/val":{"full-name":"cljs.core/val","signature":["[map-entry]"],"description-html":"

Returns the value in the map entry.

\n","related":["cljs.core/vals"]},"cljs.core/vals":{"full-name":"cljs.core/vals","signature":["[hash-map]"],"description-html":"

Returns a sequence of the values in hash-map.

\n","related":["cljs.core/keys"]},"cljs.core/vec":{"full-name":"cljs.core/vec","signature":["[coll]"],"description-html":"

Creates a new vector containing the contents of coll

\n","related":["cljs.core/vector","cljs.core/vector?","cljs.core/vector-of"]},"cljs.core/vector":{"full-name":"cljs.core/vector","signature":["[& args]"],"description-html":"

Creates a new vector containing args.

\n","related":["cljs.core/vec","cljs.core/vector?","cljs.core/vector-of","cljs.core/pop","cljs.core/into"]},"cljs.core/vector?":{"full-name":"cljs.core/vector?","signature":["[x]"],"description-html":"

Returns true if x is a vector, false otherwise.

\n","related":["cljs.core/vector","cljs.core/vec"]},"cljs.core/when":{"full-name":"cljs.core/when","signature":["[test & body]"],"description-html":"

Evaluates test. If logical true, evaluates body in an implicit do.

\n

when is often used instead of if for conditions that do not have an "else".

\n","related":["cljs.core/when-not","cljs.core/when-let","cljs.core/if"],"type":"macro"},"cljs.core/when-first":{"full-name":"cljs.core/when-first","signature":["[bindings & body]"],"description-html":"

With bindings as x, xs, roughly the same as (when (seq xs) (let [x (first\nxs)] body)) but xs is evaluated only once.

\n","type":"macro"},"cljs.core/when-let":{"full-name":"cljs.core/when-let","signature":["[[x test] & body]"],"description-html":"

When test is logical true, evaluates body with the value of test bound to\nx.

\n","related":["cljs.core/if-let","cljs.core/when","cljs.core/when-not","cljs.core/if","cljs.core/when-first"],"type":"macro"},"cljs.core/when-not":{"full-name":"cljs.core/when-not","signature":["[test & body]"],"description-html":"

Evaluates test. If logical false, evaluates body in an implicit do.

\n","related":["cljs.core/when","cljs.core/when-let","cljs.core/if"],"type":"macro"},"cljs.core/when-some":{"full-name":"cljs.core/when-some","signature":["[[x test] & body]"],"description-html":"

When test is not nil, evaluates body with x bound to the value of test.

\n","related":["cljs.core/if-some"],"type":"macro"},"cljs.core/while":{"full-name":"cljs.core/while","signature":["[test & body]"],"description-html":"

Repeatedly executes body while test expression is true. Presumes some\nside-effect will cause test to become false or nil.

\n

Returns nil.

\n","related":["cljs.core/loop"],"type":"macro"},"cljs.core/zero?":{"full-name":"cljs.core/zero?","signature":["[n]"],"description-html":"

Returns true if n is 0, false otherwise.

\n","related":["cljs.core/pos?","cljs.core/neg?"]},"cljs.core/zipmap":{"full-name":"cljs.core/zipmap","signature":["[keys vals]"],"description-html":"

Returns a map with keys mapped to corresponding vals.

\n
user=> (zipmap [:a :b :c :d] [1 2 3 4])\n{:a 1, :b 2, :c 3, :d 4}
","related":["cljs.core/interleave"]},"clojure.set/difference":{"full-name":"clojure.set/difference","signature":["[s1]","[s1 s2]","[s1 s2 & sets]"],"description-html":"

Return a set that is the first set without elements of the remaining sets.

\n","related":["clojure.set/union","clojure.set/intersection","clojure.set/superset?","clojure.set/project"]},"clojure.set/intersection":{"full-name":"clojure.set/intersection","signature":["[s1]","[s1 s2]","[s1 s2 & sets]"],"description-html":"

Return a set that is the intersection of the input sets.

\n","related":["clojure.set/union","clojure.set/difference","clojure.set/superset?","clojure.set/project"]},"clojure.set/select":{"full-name":"clojure.set/select","signature":["[pred xset]"],"description-html":"

Returns a set of the elements for which pred is true.

\n","related":["cljs.core/filter"]},"clojure.set/subset?":{"full-name":"clojure.set/subset?","signature":["[a b]"],"description-html":"

Returns true if a is a subset of b, false otherwise.

\n

In other words, returns true if all the elements of a can be found in b.

\n","related":["cljs.core/set","cljs.core/set?","clojure.set/superset?"]},"clojure.set/superset?":{"full-name":"clojure.set/superset?","signature":["[a b]"],"description-html":"

Returns true if a is a superset of b, false otherwise.

\n

In other words, returns true if a contains all the elements of b.

\n","related":["cljs.core/set","cljs.core/set?","clojure.set/subset?"]},"clojure.set/union":{"full-name":"clojure.set/union","signature":["[]","[s1]","[s1 s2]","[s1 s2 & sets]"],"description-html":"

Return a set that is the union of the input sets.

\n","related":["clojure.set/intersection","clojure.set/difference","clojure.set/superset?"]},"clojure.string/blank?":{"full-name":"clojure.string/blank?","signature":["[s]"],"description-html":"

True if s is nil, empty, or contains only whitespace.

\n"},"clojure.string/capitalize":{"full-name":"clojure.string/capitalize","signature":["[s]"],"description-html":"

Converts first character of the string to upper-case, all other characters to\nlower-case.

\n"},"clojure.string/escape":{"full-name":"clojure.string/escape","signature":["[s cmap]"],"description-html":"

Return a new string, using cmap to escape each character ch from s as follows:

\n

If (cmap ch) is nil, append ch to the new string.

\n

If (cmap ch) is non-nil, append (str (cmap ch)) instead.

\n"},"clojure.string/join":{"full-name":"clojure.string/join","signature":["[coll]","[separator coll]"],"description-html":"

Returns a string of all elements in coll, as returned by (seq coll),\nseparated by an optional separator.

\n"},"clojure.string/lower-case":{"full-name":"clojure.string/lower-case","signature":["[s]"],"description-html":"

Converts string to all lower-case.

\n"},"clojure.string/replace":{"full-name":"clojure.string/replace","signature":["[s match replacement]"],"description-html":"

Replaces all instance of match with replacement in s.

\n

The options for match / replacement are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
matchreplacement
stringstring
regexstring
regexfunction
\n","related":["cljs.core/subs","clojure.string/split","clojure.string/replace-first"]},"clojure.string/replace-first":{"full-name":"clojure.string/replace-first","signature":["[s match replacement]"],"description-html":"

Replaces the first instance of match with replacement in s.

\n

The options for match / replacement are:

\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
matchreplacement
stringstring
regexstring
regexfunction
\n"},"clojure.string/reverse":{"full-name":"clojure.string/reverse","signature":["[s]"],"description-html":"

Returns s with its characters reversed.

\n"},"clojure.string/split":{"full-name":"clojure.string/split","signature":["[s re]","[s re limit]"],"description-html":"

Splits string on a regular expression. Optional argument limit is the maximum\nnumber of splits. Not lazy. Returns vector of the splits.

\n","related":["cljs.core/subs","clojure.string/replace","clojure.string/split-lines"]},"clojure.string/split-lines":{"full-name":"clojure.string/split-lines","signature":["[s]"],"description-html":"

Splits s on \\n or \\r\\n.

\n","related":["clojure.string/split"]},"clojure.string/trim":{"full-name":"clojure.string/trim","signature":["[s]"],"description-html":"

Removes whitespace from both ends of string.

\n"},"clojure.string/trim-newline":{"full-name":"clojure.string/trim-newline","signature":["[s]"],"description-html":"

Removes all trailing newline \\n or return \\r characters from string.

\n

Similar to Perl's chomp.

\n"},"clojure.string/triml":{"full-name":"clojure.string/triml","signature":["[s]"],"description-html":"

Removes whitespace from the left side of string.

\n"},"clojure.string/trimr":{"full-name":"clojure.string/trimr","signature":["[s]"],"description-html":"

Removes whitespace from the right side of string.

\n"},"clojure.string/upper-case":{"full-name":"clojure.string/upper-case","signature":["[s]"],"description-html":"

Converts string to all upper-case.

\n"}} \ No newline at end of file