(*)
(* x)
(* x y)
(* x y & more)
Returns the product of nums. (*) returns 1.
Returns the product of nums. (*) returns 1.
bound in a repl thread to the most recent value printed
bound in a repl thread to the most recent value printed
bound in a repl thread to the second most recent value printed
bound in a repl thread to the second most recent value printed
bound in a repl thread to the third most recent value printed
bound in a repl thread to the third most recent value printed
A sequence of the supplied command line arguments, or nil if none were supplied
A sequence of the supplied command line arguments, or nil if none were supplied
bound in a repl thread to the most recent exception caught by the repl
bound in a repl thread to the most recent exception caught by the repl
Runtime environments may provide a way to evaluate ClojureScript forms. Whatever function eval is bound to will be passed any forms which should be evaluated.
Runtime environments may provide a way to evaluate ClojureScript forms. Whatever function *eval* is bound to will be passed any forms which should be evaluated.
(*exec-tap-fn* f)
Arranges to have tap functions executed via the supplied f, a function of no arguments. Returns true if successful, false otherwise.
Arranges to have tap functions executed via the supplied f, a function of no arguments. Returns true if successful, false otherwise.
When set to true, output will be flushed whenever a newline is printed.
Defaults to true.
When set to true, output will be flushed whenever a newline is printed. Defaults to true.
When compiled for a command-line target, whatever function main-cli-fn is set to will be called with the command-line argv as arguments
When compiled for a command-line target, whatever function *main-cli-fn* is set to will be called with the command-line argv as arguments
Var bound to the current namespace. Only used for bootstrapping.
Var bound to the current namespace. Only used for bootstrapping.
When set to logical true, objects will be printed in a way that preserves their type when read in later.
Defaults to false.
When set to logical true, objects will be printed in a way that preserves their type when read in later. Defaults to false.
Each runtime environment provides a different way to print error output. Whatever function print-err-fn is bound to will be passed any Strings which should be printed.
Each runtime environment provides a different way to print error output. Whatever function *print-err-fn* is bound to will be passed any Strings which should be printed.
Each runtime environment provides a different way to print output. Whatever function print-fn is bound to will be passed any Strings which should be printed.
Each runtime environment provides a different way to print output. Whatever function *print-fn* is bound to will be passed any Strings which should be printed.
print-fns-bodies controls whether functions print their source or only their names.
*print-fns-bodies* controls whether functions print their source or only their names.
print-length controls how many items of each collection the printer will print. If it is bound to logical false, there is no limit. Otherwise, it must be bound to an integer indicating the maximum number of items of each collection to print. If a collection contains more items, the printer will print items up to the limit followed by '...' to represent the remaining items. The root binding is nil indicating no limit.
*print-length* controls how many items of each collection the printer will print. If it is bound to logical false, there is no limit. Otherwise, it must be bound to an integer indicating the maximum number of items of each collection to print. If a collection contains more items, the printer will print items up to the limit followed by '...' to represent the remaining items. The root binding is nil indicating no limit.
print-level controls how many levels deep the printer will print nested objects. If it is bound to logical false, there is no limit. Otherwise, it must be bound to an integer indicating the maximum level to print. Each argument to print is at level 0; if an argument is a collection, its items are at level 1; and so on. If an object is a collection and is at a level greater than or equal to the value bound to print-level, the printer prints '#' to represent it. The root binding is nil indicating no limit.
*print-level* controls how many levels deep the printer will print nested objects. If it is bound to logical false, there is no limit. Otherwise, it must be bound to an integer indicating the maximum level to print. Each argument to print is at level 0; if an argument is a collection, its items are at level 1; and so on. If an object is a collection and is at a level greater than or equal to the value bound to *print-level*, the printer prints '#' to represent it. The root binding is nil indicating no limit.
If set to logical true, when printing an object, its metadata will also be printed in a form that can be read back by the reader.
Defaults to false.
If set to logical true, when printing an object, its metadata will also be printed in a form that can be read back by the reader. Defaults to false.
print-namespace-maps controls whether the printer will print namespace map literal syntax.
Defaults to false, but the REPL binds it to true.
*print-namespace-maps* controls whether the printer will print namespace map literal syntax. Defaults to false, but the REPL binds it to true.
When set to logical false will drop newlines from printing calls. This is to work around the implicit newlines emitted by standard JavaScript console objects.
When set to logical false will drop newlines from printing calls. This is to work around the implicit newlines emitted by standard JavaScript console objects.
When set to logical false, strings and characters will be printed with non-alphanumeric characters converted to the appropriate escape sequences.
Defaults to true
When set to logical false, strings and characters will be printed with non-alphanumeric characters converted to the appropriate escape sequences. Defaults to true
Var bound to the name value of the compiler build :target option. For example, if the compiler build :target is :nodejs, target will be bound to "nodejs". target is a Google Closure define and can be set by compiler :closure-defines option.
Var bound to the name value of the compiler build :target option. For example, if the compiler build :target is :nodejs, *target* will be bound to "nodejs". *target* is a Google Closure define and can be set by compiler :closure-defines option.
(+)
(+ x)
(+ x y)
(+ x y & more)
Returns the sum of nums. (+) returns 0.
Returns the sum of nums. (+) returns 0.
(- x)
(- x y)
(- x y & more)
If no ys are supplied, returns the negation of x, else subtracts the ys from x and returns the result.
If no ys are supplied, returns the negation of x, else subtracts the ys from x and returns the result.
(/ x)
(/ x y)
(/ x y & more)
If no denominators are supplied, returns 1/numerator, else returns numerator divided by all of the denominators.
If no denominators are supplied, returns 1/numerator, else returns numerator divided by all of the denominators.
(< x)
(< x y)
(< x y & more)
Returns non-nil if nums are in monotonically increasing order, otherwise false.
Returns non-nil if nums are in monotonically increasing order, otherwise false.
(<= x)
(<= x y)
(<= x y & more)
Returns non-nil if nums are in monotonically non-decreasing order, otherwise false.
Returns non-nil if nums are in monotonically non-decreasing order, otherwise false.
(= x)
(= x y)
(= x y & more)
Equality. Returns true if x equals y, false if not. Compares numbers and collections in a type-independent manner. Clojure's immutable data structures define -equiv (and thus =) as a value, not an identity, comparison.
Equality. Returns true if x equals y, false if not. Compares numbers and collections in a type-independent manner. Clojure's immutable data structures define -equiv (and thus =) as a value, not an identity, comparison.
(== x)
(== x y)
(== x y & more)
Returns non-nil if nums all have the equivalent value, otherwise false. Behavior on non nums is undefined.
Returns non-nil if nums all have the equivalent value, otherwise false. Behavior on non nums is undefined.
(> x)
(> x y)
(> x y & more)
Returns non-nil if nums are in monotonically decreasing order, otherwise false.
Returns non-nil if nums are in monotonically decreasing order, otherwise false.
(>= x)
(>= x y)
(>= x y & more)
Returns non-nil if nums are in monotonically non-increasing order, otherwise false.
Returns non-nil if nums are in monotonically non-increasing order, otherwise false.
(aclone arr)
Returns a javascript array, cloned from the passed in array
Returns a javascript array, cloned from the passed in array
(add-tap f)
Adds f, a fn of one argument, to the tap set. This function will be called with anything sent via tap>. Remember f in order to remove-tap
Adds f, a fn of one argument, to the tap set. This function will be called with anything sent via tap>. Remember f in order to remove-tap
(add-watch iref key f)
Adds a watch function to an atom reference. The watch fn must be a fn of 4 args: a key, the reference, its old-state, its new-state. Whenever the reference's state might have been changed, any registered watches will have their functions called. The watch fn will be called synchronously. Note that an atom's state may have changed again prior to the fn call, so use old/new-state rather than derefing the reference. Keys must be unique per reference, and can be used to remove the watch with remove-watch, but are otherwise considered opaque by the watch mechanism. Bear in mind that regardless of the result or action of the watch fns the atom's value will change. Example:
(def a (atom 0))
(add-watch a :inc (fn [k r o n] (assert (== 0 n))))
(swap! a inc)
;; Assertion Error
(deref a)
;=> 1
Adds a watch function to an atom reference. The watch fn must be a fn of 4 args: a key, the reference, its old-state, its new-state. Whenever the reference's state might have been changed, any registered watches will have their functions called. The watch fn will be called synchronously. Note that an atom's state may have changed again prior to the fn call, so use old/new-state rather than derefing the reference. Keys must be unique per reference, and can be used to remove the watch with remove-watch, but are otherwise considered opaque by the watch mechanism. Bear in mind that regardless of the result or action of the watch fns the atom's value will change. Example: (def a (atom 0)) (add-watch a :inc (fn [k r o n] (assert (== 0 n)))) (swap! a inc) ;; Assertion Error (deref a) ;=> 1
(aget array idx)
(aget array idx & idxs)
Returns the value at the index/indices. Works on JavaScript arrays.
Returns the value at the index/indices. Works on JavaScript arrays.
(alength array)
Returns the length of the array. Works on arrays of all types.
Returns the length of the array. Works on arrays of all types.
(alter-meta! iref f & args)
Atomically sets the metadata for a namespace/var/ref/agent/atom to be:
(apply f its-current-meta args)
f must be free of side-effects
Atomically sets the metadata for a namespace/var/ref/agent/atom to be: (apply f its-current-meta args) f must be free of side-effects
(ancestors tag)
(ancestors h tag)
Returns the immediate and indirect parents of tag, either via a JavaScript type inheritance relationship or a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy
Returns the immediate and indirect parents of tag, either via a JavaScript type inheritance relationship or a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy
(any? x)
Returns true if given any argument.
Returns true if given any argument.
(apply f args)
(apply f x args)
(apply f x y args)
(apply f x y z args)
(apply f a b c d & args)
Applies fn f to the argument list formed by prepending intervening arguments to args.
Applies fn f to the argument list formed by prepending intervening arguments to args.
(array var-args)
Creates a new javascript array. @param {...*} var_args
Creates a new javascript array. @param {...*} var_args
(array-map & keyvals)
keyval => key val Returns a new array map with supplied mappings.
keyval => key val Returns a new array map with supplied mappings.
(array-seq array)
(array-seq array i)
Create a seq from a JavaScript array.
Create a seq from a JavaScript array.
(array? x)
Returns true if x is a JavaScript array.
Returns true if x is a JavaScript array.
Marker protocol indicating an array sequence.
Marker protocol indicating an array sequence.
(aset array idx val)
(aset array idx idx2 & idxv)
Sets the value at the index/indices. Works on JavaScript arrays. Returns val.
Sets the value at the index/indices. Works on JavaScript arrays. Returns val.
(assoc coll k v)
(assoc coll k v & kvs)
assoc[iate]. When applied to a map, returns a new map of the same (hashed/sorted) type, that contains the mapping of key(s) to val(s). When applied to a vector, returns a new vector that contains val at index.
assoc[iate]. When applied to a map, returns a new map of the same (hashed/sorted) type, that contains the mapping of key(s) to val(s). When applied to a vector, returns a new vector that contains val at index.
(assoc! tcoll key val)
(assoc! tcoll key val & kvs)
When applied to a transient map, adds mapping of key(s) to val(s). When applied to a transient vector, sets the val at index. Note - index must be <= (count vector). Returns coll.
When applied to a transient map, adds mapping of key(s) to val(s). When applied to a transient vector, sets the val at index. Note - index must be <= (count vector). Returns coll.
(assoc-in m [k & ks] v)
Associates a value in a nested associative structure, where ks is a sequence of keys and v is the new value and returns a new nested structure. If any levels do not exist, hash-maps will be created.
Associates a value in a nested associative structure, where ks is a sequence of keys and v is the new value and returns a new nested structure. If any levels do not exist, hash-maps will be created.
(associative? x)
Returns true if coll implements IAssociative
Returns true if coll implements IAssociative
(atom x)
(atom x & {:keys [meta validator]})
Creates and returns an Atom with an initial value of x and zero or more options (in any order):
:meta metadata-map
:validator validate-fn
If metadata-map is supplied, it will be come the metadata on the atom. validate-fn must be nil or a side-effect-free fn of one argument, which will be passed the intended new state on any state change. If the new state is unacceptable, the validate-fn should return false or throw an Error. If either of these error conditions occur, then the value of the atom will not change.
Creates and returns an Atom with an initial value of x and zero or more options (in any order): :meta metadata-map :validator validate-fn If metadata-map is supplied, it will be come the metadata on the atom. validate-fn must be nil or a side-effect-free fn of one argument, which will be passed the intended new state on any state change. If the new state is unacceptable, the validate-fn should return false or throw an Error. If either of these error conditions occur, then the value of the atom will not change.
(bit-and-not x y)
(bit-and-not x y & more)
Bitwise and with complement
Bitwise and with complement
(bit-count v)
Counts the number of bits set in n
Counts the number of bits set in n
(bit-shift-right-zero-fill x n)
DEPRECATED: Bitwise shift right with zero fill
DEPRECATED: Bitwise shift right with zero fill
(bit-xor x y)
(bit-xor x y & more)
Bitwise exclusive or
Bitwise exclusive or
(boolean? x)
Return true if x is a Boolean
Return true if x is a Boolean
(bounded-count n coll)
If coll is counted? returns its count, else will count at most the first n elements of coll using its seq
If coll is counted? returns its count, else will count at most the first n elements of coll using its seq
(butlast s)
Return a seq of all but the last item in coll, in linear time
Return a seq of all but the last item in coll, in linear time
(cat rf)
A transducer which concatenates the contents of each input, which must be a collection, into the reduction.
A transducer which concatenates the contents of each input, which must be a collection, into the reduction.
(char? x)
Returns true if x is a JavaScript string of length one.
Returns true if x is a JavaScript string of length one.
(chunked-seq vec i off)
(chunked-seq vec node i off)
(chunked-seq vec node i off meta)
(chunked-seq? x)
Return true if x is satisfies IChunkedSeq.
Return true if x is satisfies IChunkedSeq.
(clj->js x & {:keys [keyword-fn] :or {keyword-fn name} :as options})
Recursively transforms ClojureScript values to JavaScript.
sets/vectors/lists become Arrays, Keywords and Symbol become Strings,
Maps become Objects. Arbitrary keys are encoded to by key->js
.
Options is a key-value pair, where the only valid key is
:keyword-fn, which should point to a single-argument function to be
called on keyword keys. Default to name
.
Recursively transforms ClojureScript values to JavaScript. sets/vectors/lists become Arrays, Keywords and Symbol become Strings, Maps become Objects. Arbitrary keys are encoded to by `key->js`. Options is a key-value pair, where the only valid key is :keyword-fn, which should point to a single-argument function to be called on keyword keys. Default to `name`.
(clone value)
Clone the supplied value which must implement ICloneable.
Clone the supplied value which must implement ICloneable.
(cloneable? value)
Return true if x implements ICloneable protocol.
Return true if x implements ICloneable protocol.
(coll? x)
Returns true if x satisfies ICollection
Returns true if x satisfies ICollection
(comp)
(comp f)
(comp f g)
(comp f g h)
(comp f1 f2 f3 & fs)
Takes a set of functions and returns a fn that is the composition of those fns. The returned fn takes a variable number of args, applies the rightmost of fns to the args, the next fn (right-to-left) to the result, etc.
Takes a set of functions and returns a fn that is the composition of those fns. The returned fn takes a variable number of args, applies the rightmost of fns to the args, the next fn (right-to-left) to the result, etc.
(comparator pred)
Returns an JavaScript compatible comparator based upon pred.
Returns an JavaScript compatible comparator based upon pred.
(compare x y)
Comparator. Returns a negative number, zero, or a positive number when x is logically 'less than', 'equal to', or 'greater than' y. Uses IComparable if available and google.array.defaultCompare for objects of the same type and special-cases nil to be less than any other object.
Comparator. Returns a negative number, zero, or a positive number when x is logically 'less than', 'equal to', or 'greater than' y. Uses IComparable if available and google.array.defaultCompare for objects of the same type and special-cases nil to be less than any other object.
(compare-and-set! a oldval newval)
Atomically sets the value of atom to newval if and only if the current value of the atom is equal to oldval. Returns true if set happened, else false.
Atomically sets the value of atom to newval if and only if the current value of the atom is equal to oldval. Returns true if set happened, else false.
(complement f)
Takes a fn f and returns a fn that takes the same arguments as f, has the same effects, if any, and returns the opposite truth value.
Takes a fn f and returns a fn that takes the same arguments as f, has the same effects, if any, and returns the opposite truth value.
(completing f)
(completing f cf)
Takes a reducing function f of 2 args and returns a fn suitable for transduce by adding an arity-1 signature that calls cf (default - identity) on the result argument.
Takes a reducing function f of 2 args and returns a fn suitable for transduce by adding an arity-1 signature that calls cf (default - identity) on the result argument.
(concat)
(concat x)
(concat x y)
(concat x y & zs)
Returns a lazy seq representing the concatenation of the elements in the supplied colls.
Returns a lazy seq representing the concatenation of the elements in the supplied colls.
(conj)
(conj coll)
(conj coll x)
(conj coll x & xs)
conj[oin]. Returns a new collection with the xs 'added'. (conj nil item) returns (item). The 'addition' may happen at different 'places' depending on the concrete type.
conj[oin]. Returns a new collection with the xs 'added'. (conj nil item) returns (item). The 'addition' may happen at different 'places' depending on the concrete type.
(conj!)
(conj! tcoll)
(conj! tcoll val)
(conj! tcoll val & vals)
Adds val to the transient collection, and return tcoll. The 'addition' may happen at different 'places' depending on the concrete type.
Adds val to the transient collection, and return tcoll. The 'addition' may happen at different 'places' depending on the concrete type.
(cons x coll)
Returns a new seq where x is the first element and coll is the rest.
Returns a new seq where x is the first element and coll is the rest.
(constantly x)
Returns a function that takes any number of arguments and returns x.
Returns a function that takes any number of arguments and returns x.
(contains? coll v)
Returns true if key is present in the given collection, otherwise returns false. Note that for numerically indexed collections like vectors and arrays, this tests if the numeric key is within the range of indexes. 'contains?' operates constant or logarithmic time; it will not perform a linear search for a value. See also 'some'.
Returns true if key is present in the given collection, otherwise returns false. Note that for numerically indexed collections like vectors and arrays, this tests if the numeric key is within the range of indexes. 'contains?' operates constant or logarithmic time; it will not perform a linear search for a value. See also 'some'.
(count coll)
Returns the number of items in the collection. (count nil) returns 0. Also works on strings, arrays, and Maps
Returns the number of items in the collection. (count nil) returns 0. Also works on strings, arrays, and Maps
(counted? x)
Returns true if coll implements count in constant time
Returns true if coll implements count in constant time
(create-ns sym)
(create-ns sym ns-obj)
Create a new namespace named by the symbol. Bootstrap only.
Create a new namespace named by the symbol. Bootstrap only.
(cycle coll)
Returns a lazy (infinite!) sequence of repetitions of the items in coll.
Returns a lazy (infinite!) sequence of repetitions of the items in coll.
(dec x)
Returns a number one less than num.
Returns a number one less than num.
(dedupe)
(dedupe coll)
Returns a lazy sequence removing consecutive duplicates in coll. Returns a transducer when no collection is provided.
Returns a lazy sequence removing consecutive duplicates in coll. Returns a transducer when no collection is provided.
(default-dispatch-val multifn)
Given a multimethod, return it's default-dispatch-val.
Given a multimethod, return it's default-dispatch-val.
(delay? x)
returns true if x is a Delay created with delay
returns true if x is a Delay created with delay
(deref o)
Also reader macro: @var/@atom/@delay. Returns the most-recently-committed value of ref. When applied to a var or atom, returns its current state. When applied to a delay, forces it if not already forced. See also - realized?.
Also reader macro: @var/@atom/@delay. Returns the most-recently-committed value of ref. When applied to a var or atom, returns its current state. When applied to a delay, forces it if not already forced. See also - realized?.
(derive tag parent)
(derive h tag parent)
Establishes a parent/child relationship between parent and tag. Parent must be a namespace-qualified symbol or keyword and child can be either a namespace-qualified symbol or keyword or a class. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to, and modifies, the global hierarchy.
Establishes a parent/child relationship between parent and tag. Parent must be a namespace-qualified symbol or keyword and child can be either a namespace-qualified symbol or keyword or a class. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to, and modifies, the global hierarchy.
(descendants tag)
(descendants h tag)
Returns the immediate and indirect children of tag, through a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy. Note: does not work on JavaScript type inheritance relationships.
Returns the immediate and indirect children of tag, through a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy. Note: does not work on JavaScript type inheritance relationships.
(disj coll)
(disj coll k)
(disj coll k & ks)
disj[oin]. Returns a new set of the same (hashed/sorted) type, that does not contain key(s).
disj[oin]. Returns a new set of the same (hashed/sorted) type, that does not contain key(s).
(disj! tcoll val)
(disj! tcoll val & vals)
disj[oin]. Returns a transient set of the same (hashed/sorted) type, that does not contain key(s).
disj[oin]. Returns a transient set of the same (hashed/sorted) type, that does not contain key(s).
(dispatch-fn multifn)
Given a multimethod, return it's dispatch-fn.
Given a multimethod, return it's dispatch-fn.
(dissoc coll)
(dissoc coll k)
(dissoc coll k & ks)
dissoc[iate]. Returns a new map of the same (hashed/sorted) type, that does not contain a mapping for key(s).
dissoc[iate]. Returns a new map of the same (hashed/sorted) type, that does not contain a mapping for key(s).
(dissoc! tcoll key)
(dissoc! tcoll key & ks)
Returns a transient map that doesn't contain a mapping for key(s).
Returns a transient map that doesn't contain a mapping for key(s).
(distinct)
(distinct coll)
Returns a lazy sequence of the elements of coll with duplicates removed. Returns a stateful transducer when no collection is provided.
Returns a lazy sequence of the elements of coll with duplicates removed. Returns a stateful transducer when no collection is provided.
(distinct? x)
(distinct? x y)
(distinct? x y & more)
Returns true if no two of the arguments are =
Returns true if no two of the arguments are =
(doall coll)
(doall n coll)
When lazy sequences are produced via functions that have side effects, any effects other than those needed to produce the first element in the seq do not occur until the seq is consumed. doall can be used to force any effects. Walks through the successive nexts of the seq, retains the head and returns it, thus causing the entire seq to reside in memory at one time.
When lazy sequences are produced via functions that have side effects, any effects other than those needed to produce the first element in the seq do not occur until the seq is consumed. doall can be used to force any effects. Walks through the successive nexts of the seq, retains the head and returns it, thus causing the entire seq to reside in memory at one time.
(dorun coll)
(dorun n coll)
When lazy sequences are produced via functions that have side effects, any effects other than those needed to produce the first element in the seq do not occur until the seq is consumed. dorun can be used to force any effects. Walks through the successive nexts of the seq, does not retain the head and returns nil.
When lazy sequences are produced via functions that have side effects, any effects other than those needed to produce the first element in the seq do not occur until the seq is consumed. dorun can be used to force any effects. Walks through the successive nexts of the seq, does not retain the head and returns nil.
(double-array size-or-seq)
(double-array size init-val-or-seq)
Creates an array of doubles. Does not coerce array, provided for compatibility with Clojure.
Creates an array of doubles. Does not coerce array, provided for compatibility with Clojure.
(double? x)
Returns true for JavaScript numbers, false otherwise.
Returns true for JavaScript numbers, false otherwise.
(drop n)
(drop n coll)
Returns a lazy sequence of all but the first n items in coll. Returns a stateful transducer when no collection is provided.
Returns a lazy sequence of all but the first n items in coll. Returns a stateful transducer when no collection is provided.
(drop-last s)
(drop-last n s)
Return a lazy sequence of all but the last n (default 1) items in coll
Return a lazy sequence of all but the last n (default 1) items in coll
(drop-while pred)
(drop-while pred coll)
Returns a lazy sequence of the items in coll starting from the first item for which (pred item) returns logical false. Returns a stateful transducer when no collection is provided.
Returns a lazy sequence of the items in coll starting from the first item for which (pred item) returns logical false. Returns a stateful transducer when no collection is provided.
(eduction & xforms)
Returns a reducible/iterable application of the transducers to the items in coll. Transducers are applied in order as if combined with comp. Note that these applications will be performed every time reduce/iterator is called.
Returns a reducible/iterable application of the transducers to the items in coll. Transducers are applied in order as if combined with comp. Note that these applications will be performed every time reduce/iterator is called.
(empty coll)
Returns an empty collection of the same category as coll, or nil
Returns an empty collection of the same category as coll, or nil
(empty? coll)
Returns true if coll has no items - same as (not (seq coll)). Please use the idiom (seq x) rather than (not (empty? x))
Returns true if coll has no items - same as (not (seq coll)). Please use the idiom (seq x) rather than (not (empty? x))
(enable-console-print!)
Set print-fn to console.log
Set *print-fn* to console.log
(ensure-reduced x)
If x is already reduced?, returns it, else returns (reduced x)
If x is already reduced?, returns it, else returns (reduced x)
(equiv-map x y)
Test map equivalence. Returns true if x equals y, otherwise returns false.
Test map equivalence. Returns true if x equals y, otherwise returns false.
(es6-iterator coll)
EXPERIMENTAL: Return a ES2015 compatible iterator for coll.
EXPERIMENTAL: Return a ES2015 compatible iterator for coll.
(es6-iterator-seq iter)
EXPERIMENTAL: Given an ES2015 compatible iterator return a seq.
EXPERIMENTAL: Given an ES2015 compatible iterator return a seq.
(eval form)
Evaluates the form data structure (not text!) and returns the result. Delegates to cljs.core/eval. Intended for use in self-hosted ClojureScript, which sets up an implementation of cljs.core/eval for that environment.
Evaluates the form data structure (not text!) and returns the result. Delegates to cljs.core/*eval*. Intended for use in self-hosted ClojureScript, which sets up an implementation of cljs.core/*eval* for that environment.
(even? n)
Returns true if n is even, throws an exception if n is not an integer
Returns true if n is even, throws an exception if n is not an integer
(every-pred p)
(every-pred p1 p2)
(every-pred p1 p2 p3)
(every-pred p1 p2 p3 & ps)
Takes a set of predicates and returns a function f that returns true if all of its composing predicates return a logical true value against all of its arguments, else it returns false. Note that f is short-circuiting in that it will stop execution on the first argument that triggers a logical false result against the original predicates.
Takes a set of predicates and returns a function f that returns true if all of its composing predicates return a logical true value against all of its arguments, else it returns false. Note that f is short-circuiting in that it will stop execution on the first argument that triggers a logical false result against the original predicates.
(every? pred coll)
Returns true if (pred x) is logical true for every x in coll, else false.
Returns true if (pred x) is logical true for every x in coll, else false.
(ex-cause ex)
Returns exception cause (an Error / ExceptionInfo) if ex is an ExceptionInfo. Otherwise returns nil.
Returns exception cause (an Error / ExceptionInfo) if ex is an ExceptionInfo. Otherwise returns nil.
(ex-data ex)
Returns exception data (a map) if ex is an ExceptionInfo. Otherwise returns nil.
Returns exception data (a map) if ex is an ExceptionInfo. Otherwise returns nil.
(ex-info msg data)
(ex-info msg data cause)
Create an instance of ExceptionInfo, an Error type that carries a map of additional data.
Create an instance of ExceptionInfo, an Error type that carries a map of additional data.
(ex-message ex)
Returns the message attached to the given Error / ExceptionInfo object. For non-Errors returns nil.
Returns the message attached to the given Error / ExceptionInfo object. For non-Errors returns nil.
(false? x)
Returns true if x is the value false, false otherwise.
Returns true if x is the value false, false otherwise.
(filter pred)
(filter pred coll)
Returns a lazy sequence of the items in coll for which (pred item) returns logical true. pred must be free of side-effects. Returns a transducer when no collection is provided.
Returns a lazy sequence of the items in coll for which (pred item) returns logical true. pred must be free of side-effects. Returns a transducer when no collection is provided.
(filterv pred coll)
Returns a vector of the items in coll for which (pred item) returns logical true. pred must be free of side-effects.
Returns a vector of the items in coll for which (pred item) returns logical true. pred must be free of side-effects.
(find coll k)
Returns the map entry for key, or nil if key not present.
Returns the map entry for key, or nil if key not present.
(find-macros-ns ns)
Returns the macros namespace named by the symbol or nil if it doesn't exist. Bootstrap only.
Returns the macros namespace named by the symbol or nil if it doesn't exist. Bootstrap only.
(find-ns ns)
Returns the namespace named by the symbol or nil if it doesn't exist. Bootstrap only.
Returns the namespace named by the symbol or nil if it doesn't exist. Bootstrap only.
(first coll)
Returns the first item in the collection. Calls seq on its argument. If coll is nil, returns nil.
Returns the first item in the collection. Calls seq on its argument. If coll is nil, returns nil.
(flatten x)
Takes any nested combination of sequential things (lists, vectors, etc.) and returns their contents as a single, flat sequence. (flatten nil) returns nil.
Takes any nested combination of sequential things (lists, vectors, etc.) and returns their contents as a single, flat sequence. (flatten nil) returns nil.
(float? x)
Returns true for JavaScript numbers, false otherwise.
Returns true for JavaScript numbers, false otherwise.
(fn? f)
Return true if f is a JavaScript function or satisfies the Fn protocol.
Return true if f is a JavaScript function or satisfies the Fn protocol.
(fnil f x)
(fnil f x y)
(fnil f x y z)
Takes a function f, and returns a function that calls f, replacing a nil first argument to f with the supplied value x. Higher arity versions can replace arguments in the second and third positions (y, z). Note that the function f can take any number of arguments, not just the one(s) being nil-patched.
Takes a function f, and returns a function that calls f, replacing a nil first argument to f with the supplied value x. Higher arity versions can replace arguments in the second and third positions (y, z). Note that the function f can take any number of arguments, not just the one(s) being nil-patched.
(force x)
If x is a Delay, returns the (possibly cached) value of its expression, else returns x
If x is a Delay, returns the (possibly cached) value of its expression, else returns x
(frequencies coll)
Returns a map from distinct items in coll to the number of times they appear.
Returns a map from distinct items in coll to the number of times they appear.
(gensym)
(gensym prefix-string)
Returns a new symbol with a unique name. If a prefix string is supplied, the name is prefix# where # is some unique number. If prefix is not supplied, the prefix is 'G__'.
Returns a new symbol with a unique name. If a prefix string is supplied, the name is prefix# where # is some unique number. If prefix is not supplied, the prefix is 'G__'.
(get o k)
(get o k not-found)
Returns the value mapped to key, not-found or nil if key not present.
Returns the value mapped to key, not-found or nil if key not present.
(get-in m ks)
(get-in m ks not-found)
Returns the value in a nested associative structure, where ks is a sequence of keys. Returns nil if the key is not present, or the not-found value if supplied.
Returns the value in a nested associative structure, where ks is a sequence of keys. Returns nil if the key is not present, or the not-found value if supplied.
(get-method multifn dispatch-val)
Given a multimethod and a dispatch value, returns the dispatch fn that would apply to that value, or nil if none apply and no default
Given a multimethod and a dispatch value, returns the dispatch fn that would apply to that value, or nil if none apply and no default
(get-validator iref)
Gets the validator-fn for a var/ref/agent/atom.
Gets the validator-fn for a var/ref/agent/atom.
(group-by f coll)
Returns a map of the elements of coll keyed by the result of f on each element. The value at each key will be a vector of the corresponding elements, in the order they appeared in coll.
Returns a map of the elements of coll keyed by the result of f on each element. The value at each key will be a vector of the corresponding elements, in the order they appeared in coll.
(halt-when pred)
(halt-when pred retf)
Returns a transducer that ends transduction when pred returns true for an input. When retf is supplied it must be a fn of 2 arguments - it will be passed the (completed) result so far and the input that triggered the predicate, and its return value (if it does not throw an exception) will be the return value of the transducer. If retf is not supplied, the input that triggered the predicate will be returned. If the predicate never returns true the transduction is unaffected.
Returns a transducer that ends transduction when pred returns true for an input. When retf is supplied it must be a fn of 2 arguments - it will be passed the (completed) result so far and the input that triggered the predicate, and its return value (if it does not throw an exception) will be the return value of the transducer. If retf is not supplied, the input that triggered the predicate will be returned. If the predicate never returns true the transduction is unaffected.
(hash o)
Returns the hash code of its argument. Note this is the hash code consistent with =.
Returns the hash code of its argument. Note this is the hash code consistent with =.
(hash-map & keyvals)
keyval => key val Returns a new hash map with supplied mappings.
keyval => key val Returns a new hash map with supplied mappings.
(hash-ordered-coll coll)
Returns the hash code, consistent with =, for an external ordered collection implementing Iterable. See http://clojure.org/data_structures#hash for full algorithms.
Returns the hash code, consistent with =, for an external ordered collection implementing Iterable. See http://clojure.org/data_structures#hash for full algorithms.
(hash-set)
(hash-set & keys)
Returns a new hash set with supplied keys. Any equal keys are handled as if by repeated uses of conj.
Returns a new hash set with supplied keys. Any equal keys are handled as if by repeated uses of conj.
(hash-unordered-coll coll)
Returns the hash code, consistent with =, for an external unordered collection implementing Iterable. For maps, the iterator should return map entries whose hash is computed as (hash-ordered-coll [k v]). See http://clojure.org/data_structures#hash for full algorithms.
Returns the hash code, consistent with =, for an external unordered collection implementing Iterable. For maps, the iterator should return map entries whose hash is computed as (hash-ordered-coll [k v]). See http://clojure.org/data_structures#hash for full algorithms.
Protocol for adding associativity to collections.
Protocol for adding associativity to collections.
(-assoc coll k v)
Returns a new collection of coll with a mapping from key k to value v added to it.
Returns a new collection of coll with a mapping from key k to value v added to it.
(-contains-key? coll k)
Returns true if k is a key in coll.
Returns true if k is a key in coll.
Marker protocol indicating an atom.
Marker protocol indicating an atom.
Protocol for accessing the items of a chunk.
Protocol for accessing the items of a chunk.
(-drop-first coll)
Return a new chunk of coll with the first item removed.
Return a new chunk of coll with the first item removed.
Protocol for accessing the chunks of a collection.
Protocol for accessing the chunks of a collection.
(-chunked-next coll)
Returns a new collection of coll without the first chunk.
Returns a new collection of coll without the first chunk.
Protocol for accessing a collection as sequential chunks.
Protocol for accessing a collection as sequential chunks.
(-chunked-rest coll)
Return a new collection of coll with the first chunk removed.
Return a new collection of coll with the first chunk removed.
(-chunked-first coll)
Returns the first chunk in coll.
Returns the first chunk in coll.
Protocol for cloning a value.
Protocol for cloning a value.
(-clone value)
Creates a clone of value.
Creates a clone of value.
Protocol for adding to a collection.
Protocol for adding to a collection.
(-conj coll o)
Returns a new collection of coll with o added to it. The new item should be added to the most efficient place, e.g. (conj [1 2 3 4] 5) => [1 2 3 4 5] (conj '(2 3 4 5) 1) => '(1 2 3 4 5)
Returns a new collection of coll with o added to it. The new item should be added to the most efficient place, e.g. (conj [1 2 3 4] 5) => [1 2 3 4 5] (conj '(2 3 4 5) 1) => '(1 2 3 4 5)
Protocol for values that can be compared.
Protocol for values that can be compared.
(-compare x y)
Returns a negative number, zero, or a positive number when x is logically 'less than', 'equal to', or 'greater than' y.
Returns a negative number, zero, or a positive number when x is logically 'less than', 'equal to', or 'greater than' y.
Protocol for adding the ability to count a collection in constant time.
Protocol for adding the ability to count a collection in constant time.
(-count coll)
Calculates the count of coll in constant time. Used by cljs.core/count.
Calculates the count of coll in constant time. Used by cljs.core/count.
(ident? x)
Return true if x is a symbol or keyword
Return true if x is a symbol or keyword
(identical? x y)
Tests if 2 arguments are the same object
Tests if 2 arguments are the same object
Protocol for adding dereference functionality to a reference.
Protocol for adding dereference functionality to a reference.
(-deref o)
Returns the value of the reference o.
Returns the value of the reference o.
Protocol for collections which can transformed to transients.
Protocol for collections which can transformed to transients.
(-as-transient coll)
Returns a new, transient version of the collection, in constant time.
Returns a new, transient version of the collection, in constant time.
Protocol for creating an empty collection.
Protocol for creating an empty collection.
(-empty coll)
Returns an empty collection of the same category as coll. Used by cljs.core/empty.
Returns an empty collection of the same category as coll. Used by cljs.core/empty.
(-js->clj x options)
Transforms JavaScript values to Clojure
Transforms JavaScript values to Clojure
(-clj->js x)
Recursively transforms clj values to JavaScript
Recursively transforms clj values to JavaScript
(-key->js x)
Transforms map keys to valid JavaScript keys. Arbitrary keys are encoded to their string representation via (pr-str x)
Transforms map keys to valid JavaScript keys. Arbitrary keys are encoded to their string representation via (pr-str x)
Protocol for adding value comparison functionality to a type.
Protocol for adding value comparison functionality to a type.
(-equiv o other)
Returns true if o and other are equal, false otherwise.
Returns true if o and other are equal, false otherwise.
Protocol for implementing entry finding in collections.
Protocol for implementing entry finding in collections.
(-find coll k)
Returns the map entry for key, or nil if key not present.
Returns the map entry for key, or nil if key not present.
(ifind? x)
Returns true if coll implements IFind
Returns true if coll implements IFind
Protocol for adding the ability to invoke an object as a function. For example, a vector can also be used to look up a value: ([1 2 3 4] 1) => 2
Protocol for adding the ability to invoke an object as a function. For example, a vector can also be used to look up a value: ([1 2 3 4] 1) => 2
(-invoke this)
(-invoke this a)
(-invoke this a b)
(-invoke this a b c)
(-invoke this a b c d)
(-invoke this a b c d e)
(-invoke this a b c d e f)
(-invoke this a b c d e f g)
(-invoke this a b c d e f g h)
(-invoke this a b c d e f g h i)
(-invoke this a b c d e f g h i j)
(-invoke this a b c d e f g h i j k)
(-invoke this a b c d e f g h i j k l)
(-invoke this a b c d e f g h i j k l m)
(-invoke this a b c d e f g h i j k l m n)
(-invoke this a b c d e f g h i j k l m n o)
(-invoke this a b c d e f g h i j k l m n o p)
(-invoke this a b c d e f g h i j k l m n o p q)
(-invoke this a b c d e f g h i j k l m n o p q r)
(-invoke this a b c d e f g h i j k l m n o p q r s)
(-invoke this a b c d e f g h i j k l m n o p q r s t)
(-invoke this a b c d e f g h i j k l m n o p q r s t rest)
(ifn? f)
Returns true if f returns true for fn? or satisfies IFn.
Returns true if f returns true for fn? or satisfies IFn.
Protocol for adding hashing functionality to a type.
Protocol for adding hashing functionality to a type.
(-hash o)
Returns the hash code of o.
Returns the hash code of o.
Protocol for collections to provide indexed-based access to their items.
Protocol for collections to provide indexed-based access to their items.
(-nth coll n)
(-nth coll n not-found)
Returns the value at the index n in the collection coll. Returns not-found if index n is out of bounds and not-found is supplied.
Returns the value at the index n in the collection coll. Returns not-found if index n is out of bounds and not-found is supplied.
Protocol for iterating over a collection.
Protocol for iterating over a collection.
(-iterator coll)
Returns an iterator for coll.
Returns an iterator for coll.
Protocol for associative types that can reduce themselves via a function of key and val. Called by cljs.core/reduce-kv.
Protocol for associative types that can reduce themselves via a function of key and val. Called by cljs.core/reduce-kv.
(-kv-reduce coll f init)
Reduces an associative collection and returns the result. f should be a function that takes three arguments.
Reduces an associative collection and returns the result. f should be a function that takes three arguments.
Marker interface indicating a persistent list
Marker interface indicating a persistent list
Protocol for looking up a value in a data structure.
Protocol for looking up a value in a data structure.
(-lookup o k)
(-lookup o k not-found)
Use k to look up a value in o. If not-found is supplied and k is not a valid value that can be used for look up, not-found is returned.
Use k to look up a value in o. If not-found is supplied and k is not a valid value that can be used for look up, not-found is returned.
Protocol for adding mapping functionality to collections.
Protocol for adding mapping functionality to collections.
(-dissoc coll k)
Returns a new collection of coll without the mapping for key k.
Returns a new collection of coll without the mapping for key k.
Protocol for examining a map entry.
Protocol for examining a map entry.
(-key coll)
Returns the key of the map entry.
Returns the key of the map entry.
(-val coll)
Returns the value of the map entry.
Returns the value of the map entry.
Protocol for accessing the metadata of an object.
Protocol for accessing the metadata of an object.
(-meta o)
Returns the metadata of object o.
Returns the metadata of object o.
(-prefer-method mf dispatch-val dispatch-val-y)
(-default-dispatch-val mf)
(-remove-method mf dispatch-val)
(-methods mf)
(-prefers mf)
(-dispatch-fn mf)
(-add-method mf dispatch-val method)
(-reset mf)
(-get-method mf dispatch-val)
Protocol for adding a name.
Protocol for adding a name.
(-name x)
Returns the name String of x.
Returns the name String of x.
(-namespace x)
Returns the namespace String of x.
Returns the namespace String of x.
(inc x)
Returns a number one greater than num.
Returns a number one greater than num.
(indexed? x)
Returns true if coll implements nth in constant time
Returns true if coll implements nth in constant time
Protocol for accessing the next items of a collection.
Protocol for accessing the next items of a collection.
(-next coll)
Returns a new collection of coll without the first item. In contrast to rest, it should return nil if there are no more items, e.g. (next []) => nil (next nil) => nil
Returns a new collection of coll without the first item. In contrast to rest, it should return nil if there are no more items, e.g. (next []) => nil (next nil) => nil
(infinite? x)
Returns true for Infinity and -Infinity values.
Returns true for Infinity and -Infinity values.
(inst-ms inst)
Return the number of milliseconds since January 1, 1970, 00:00:00 GMT
Return the number of milliseconds since January 1, 1970, 00:00:00 GMT
(inst? x)
Return true if x satisfies Inst
Return true if x satisfies Inst
(instance? c x)
Evaluates x and tests if it is an instance of the type c. Returns true or false
Evaluates x and tests if it is an instance of the type c. Returns true or false
(int x)
Coerce to int by stripping decimal places.
Coerce to int by stripping decimal places.
(int-array size-or-seq)
(int-array size init-val-or-seq)
Creates an array of ints. Does not coerce array, provided for compatibility with Clojure.
Creates an array of ints. Does not coerce array, provided for compatibility with Clojure.
(int? x)
Return true if x satisfies integer? or is an instance of goog.math.Integer or goog.math.Long.
Return true if x satisfies integer? or is an instance of goog.math.Integer or goog.math.Long.
(integer? n)
Returns true if n is a JavaScript number with no decimal part.
Returns true if n is a JavaScript number with no decimal part.
(interleave)
(interleave c1)
(interleave c1 c2)
(interleave c1 c2 & colls)
Returns a lazy seq of the first item in each coll, then the second etc.
Returns a lazy seq of the first item in each coll, then the second etc.
(interpose sep)
(interpose sep coll)
Returns a lazy seq of the elements of coll separated by sep. Returns a stateful transducer when no collection is provided.
Returns a lazy seq of the elements of coll separated by sep. Returns a stateful transducer when no collection is provided.
(into)
(into to)
(into to from)
(into to xform from)
Returns a new coll consisting of to-coll with all of the items of from-coll conjoined. A transducer may be supplied.
Returns a new coll consisting of to-coll with all of the items of from-coll conjoined. A transducer may be supplied.
(into-array aseq)
(into-array type aseq)
Returns an array with components set to the values in aseq. Optional type argument accepted for compatibility with Clojure.
Returns an array with components set to the values in aseq. Optional type argument accepted for compatibility with Clojure.
Protocol for types which can have a deferred realization. Currently only implemented by Delay and LazySeq.
Protocol for types which can have a deferred realization. Currently only implemented by Delay and LazySeq.
(-realized? x)
Returns true if a value for x has been produced, false otherwise.
Returns true if a value for x has been produced, false otherwise.
The old IPrintable protocol's implementation consisted of building a giant list of strings to concatenate. This involved lots of concat calls, intermediate vectors, and lazy-seqs, and was very slow in some older JS engines. IPrintWithWriter implements printing via the IWriter protocol, so it be implemented efficiently in terms of e.g. a StringBuffer append.
The old IPrintable protocol's implementation consisted of building a giant list of strings to concatenate. This involved lots of concat calls, intermediate vectors, and lazy-seqs, and was very slow in some older JS engines. IPrintWithWriter implements printing via the IWriter protocol, so it be implemented efficiently in terms of e.g. a StringBuffer append.
(-pr-writer o writer opts)
Marker interface indicating a record object
Marker interface indicating a record object
Protocol for seq types that can reduce themselves. Called by cljs.core/reduce.
Protocol for seq types that can reduce themselves. Called by cljs.core/reduce.
(-reduce coll f)
(-reduce coll f start)
f should be a function of 2 arguments. If start is not supplied, returns the result of applying f to the first 2 items in coll, then applying f to that result and the 3rd item, etc.
f should be a function of 2 arguments. If start is not supplied, returns the result of applying f to the first 2 items in coll, then applying f to that result and the 3rd item, etc.
Protocol for adding resetting functionality.
Protocol for adding resetting functionality.
(-reset! o new-value)
Sets the value of o to new-value.
Sets the value of o to new-value.
Protocol for reversing a seq.
Protocol for reversing a seq.
(-rseq coll)
Returns a seq of the items in coll in reversed order.
Returns a seq of the items in coll in reversed order.
(isa? child parent)
(isa? h child parent)
Returns true if (= child parent), or child is directly or indirectly derived from parent, either via a JavaScript type inheritance relationship or a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy
Returns true if (= child parent), or child is directly or indirectly derived from parent, either via a JavaScript type inheritance relationship or a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy
Protocol for collections to provide access to their items as sequences.
Protocol for collections to provide access to their items as sequences.
(-first coll)
Returns the first item in the collection coll. Used by cljs.core/first.
Returns the first item in the collection coll. Used by cljs.core/first.
(-rest coll)
Returns a new collection of coll without the first item. It should always return a seq, e.g. (rest []) => () (rest nil) => ()
Returns a new collection of coll without the first item. It should always return a seq, e.g. (rest []) => () (rest nil) => ()
Protocol for adding the ability to a type to be transformed into a sequence.
Protocol for adding the ability to a type to be transformed into a sequence.
(-seq o)
Returns a seq of o, or nil if o is empty.
Returns a seq of o, or nil if o is empty.
Marker interface indicating a persistent collection of sequential items
Marker interface indicating a persistent collection of sequential items
Protocol for adding set functionality to a collection.
Protocol for adding set functionality to a collection.
(-disjoin coll v)
Returns a new collection of coll that does not contain v.
Returns a new collection of coll that does not contain v.
Protocol for a collection which can represent their items in a sorted manner.
Protocol for a collection which can represent their items in a sorted manner.
(-sorted-seq-from coll k ascending?)
Returns a sorted seq from coll in either ascending or descending order. If ascending is true, the result should contain all items which are > or >= than k. If ascending is false, the result should contain all items which are < or <= than k, e.g. (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 true) => (3 4 5) (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 false) => (3 2 1)
Returns a sorted seq from coll in either ascending or descending order. If ascending is true, the result should contain all items which are > or >= than k. If ascending is false, the result should contain all items which are < or <= than k, e.g. (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 true) => (3 4 5) (-sorted-seq-from (sorted-set 1 2 3 4 5) 3 false) => (3 2 1)
(-sorted-seq coll ascending?)
Returns a sorted seq from coll in either ascending or descending order.
Returns a sorted seq from coll in either ascending or descending order.
(-comparator coll)
Returns the comparator for coll.
Returns the comparator for coll.
(-entry-key coll entry)
Returns the key for entry.
Returns the key for entry.
Protocol for collections to provide access to their items as stacks. The top of the stack should be accessed in the most efficient way for the different data structures.
Protocol for collections to provide access to their items as stacks. The top of the stack should be accessed in the most efficient way for the different data structures.
(-pop coll)
Returns a new stack without the item on top of the stack. Is used by cljs.core/pop.
Returns a new stack without the item on top of the stack. Is used by cljs.core/pop.
(-peek coll)
Returns the item from the top of the stack. Is used by cljs.core/peek.
Returns the item from the top of the stack. Is used by cljs.core/peek.
Protocol for adding swapping functionality.
Protocol for adding swapping functionality.
(-swap! o f)
(-swap! o f a)
(-swap! o f a b)
(-swap! o f a b xs)
Swaps the value of o to be (apply f current-value-of-atom args).
Swaps the value of o to be (apply f current-value-of-atom args).
(iterable? x)
Return true if x implements IIterable protocol.
Return true if x implements IIterable protocol.
(iterate f x)
Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects
Returns a lazy sequence of x, (f x), (f (f x)) etc. f must be free of side-effects
Protocol for adding associativity to transient collections.
Protocol for adding associativity to transient collections.
(-assoc! tcoll key val)
Returns a new transient collection of tcoll with a mapping from key to val added to it.
Returns a new transient collection of tcoll with a mapping from key to val added to it.
Protocol for adding basic functionality to transient collections.
Protocol for adding basic functionality to transient collections.
(-persistent! tcoll)
Creates a persistent data structure from tcoll and returns it.
Creates a persistent data structure from tcoll and returns it.
(-conj! tcoll val)
Adds value val to tcoll and returns tcoll.
Adds value val to tcoll and returns tcoll.
Protocol for adding mapping functionality to transient collections.
Protocol for adding mapping functionality to transient collections.
(-dissoc! tcoll key)
Returns a new transient collection of tcoll without the mapping for key.
Returns a new transient collection of tcoll without the mapping for key.
Protocol for adding set functionality to a transient collection.
Protocol for adding set functionality to a transient collection.
(-disjoin! tcoll v)
Returns tcoll without v.
Returns tcoll without v.
Protocol for adding vector functionality to transient collections.
Protocol for adding vector functionality to transient collections.
(-pop! tcoll)
Returns tcoll with the last item removed from it.
Returns tcoll with the last item removed from it.
(-assoc-n! tcoll n val)
Returns tcoll with value val added at position n.
Returns tcoll with value val added at position n.
Protocol for adding vector functionality to collections.
Protocol for adding vector functionality to collections.
(-assoc-n coll n val)
Returns a new vector with value val added at position n.
Returns a new vector with value val added at position n.
Protocol for adding volatile functionality.
Protocol for adding volatile functionality.
(-vreset! o new-value)
Sets the value of volatile o to new-value without regard for the current value. Returns new-value.
Sets the value of volatile o to new-value without regard for the current value. Returns new-value.
Protocol for types that can be watched. Currently only implemented by Atom.
Protocol for types that can be watched. Currently only implemented by Atom.
(-remove-watch this key)
Removes watcher that corresponds to key from this.
Removes watcher that corresponds to key from this.
(-add-watch this key f)
Adds a watcher function f to this. Keys must be unique per reference, and can be used to remove the watch with -remove-watch.
Adds a watcher function f to this. Keys must be unique per reference, and can be used to remove the watch with -remove-watch.
(-notify-watches this oldval newval)
Calls all watchers with this, oldval and newval.
Calls all watchers with this, oldval and newval.
Protocol for adding metadata to an object.
Protocol for adding metadata to an object.
(-with-meta o meta)
Returns a new object with value of o and metadata meta added to it.
Returns a new object with value of o and metadata meta added to it.
Protocol for writing. Currently only implemented by StringBufferWriter.
Protocol for writing. Currently only implemented by StringBufferWriter.
(-write writer s)
Writes s with writer and returns the result.
Writes s with writer and returns the result.
(-flush writer)
Flush writer.
Flush writer.
(js->clj x)
(js->clj x & opts)
Recursively transforms JavaScript arrays into ClojureScript vectors, and JavaScript objects into ClojureScript maps. With option ':keywordize-keys true' will convert object fields from strings to keywords.
Recursively transforms JavaScript arrays into ClojureScript vectors, and JavaScript objects into ClojureScript maps. With option ':keywordize-keys true' will convert object fields from strings to keywords.
(js-delete obj key)
Delete a property from a JavaScript object. Returns true upon success, false otherwise.
Delete a property from a JavaScript object. Returns true upon success, false otherwise.
(js-invoke obj s & args)
Invoke JavaScript object method via string. Needed when the string is not a valid unquoted property name.
Invoke JavaScript object method via string. Needed when the string is not a valid unquoted property name.
(js-keys obj)
Return the JavaScript keys for an object.
Return the JavaScript keys for an object.
(js-mod n d)
Modulus of num and div with original javascript behavior. i.e. bug for negative numbers
Modulus of num and div with original javascript behavior. i.e. bug for negative numbers
(js-obj)
(js-obj & keyvals)
Create JavaSript object from an even number arguments representing interleaved keys and values.
Create JavaSript object from an even number arguments representing interleaved keys and values.
(juxt f)
(juxt f g)
(juxt f g h)
(juxt f g h & fs)
Takes a set of functions and returns a fn that is the juxtaposition of those fns. The returned fn takes a variable number of args, and returns a vector containing the result of applying each fn to the args (left-to-right). ((juxt a b c) x) => [(a x) (b x) (c x)]
Takes a set of functions and returns a fn that is the juxtaposition of those fns. The returned fn takes a variable number of args, and returns a vector containing the result of applying each fn to the args (left-to-right). ((juxt a b c) x) => [(a x) (b x) (c x)]
(keep f)
(keep f coll)
Returns a lazy sequence of the non-nil results of (f item). Note, this means false return values will be included. f must be free of side-effects. Returns a transducer when no collection is provided.
Returns a lazy sequence of the non-nil results of (f item). Note, this means false return values will be included. f must be free of side-effects. Returns a transducer when no collection is provided.
(keep-indexed f)
(keep-indexed f coll)
Returns a lazy sequence of the non-nil results of (f index item). Note, this means false return values will be included. f must be free of side-effects. Returns a stateful transducer when no collection is provided.
Returns a lazy sequence of the non-nil results of (f index item). Note, this means false return values will be included. f must be free of side-effects. Returns a stateful transducer when no collection is provided.
(key map-entry)
Returns the key of the map entry.
Returns the key of the map entry.
(keys hash-map)
Returns a sequence of the map's keys.
Returns a sequence of the map's keys.
(keyword name)
(keyword ns name)
Returns a Keyword with the given namespace and name. Do not use : in the keyword strings, it will be added automatically.
Returns a Keyword with the given namespace and name. Do not use : in the keyword strings, it will be added automatically.
(keyword-identical? x y)
Efficient test to determine that two keywords are identical.
Efficient test to determine that two keywords are identical.
(keyword? x)
Return true if x is a Keyword
Return true if x is a Keyword
(last s)
Return the last item in coll, in linear time
Return the last item in coll, in linear time
(list & xs)
Creates a new list containing the items.
Creates a new list containing the items.
(list* args)
(list* a args)
(list* a b args)
(list* a b c args)
(list* a b c d & more)
Creates a new list containing the items prepended to the rest, the last of which will be treated as a sequence.
Creates a new list containing the items prepended to the rest, the last of which will be treated as a sequence.
(list? x)
Returns true if x implements IList
Returns true if x implements IList
(long x)
Coerce to long by stripping decimal places. Identical to `int'.
Coerce to long by stripping decimal places. Identical to `int'.
(long-array size-or-seq)
(long-array size init-val-or-seq)
Creates an array of longs. Does not coerce array, provided for compatibility with Clojure.
Creates an array of longs. Does not coerce array, provided for compatibility with Clojure.
(make-array size)
(make-array type size)
(make-array type size & more-sizes)
Construct a JavaScript array of the specified dimensions. Accepts ignored type argument for compatibility with Clojure. Note that there is no efficient way to allocate multi-dimensional arrays in JavaScript; as such, this function will run in polynomial time when called with 3 or more arguments.
Construct a JavaScript array of the specified dimensions. Accepts ignored type argument for compatibility with Clojure. Note that there is no efficient way to allocate multi-dimensional arrays in JavaScript; as such, this function will run in polynomial time when called with 3 or more arguments.
(make-hierarchy)
Creates a hierarchy object for use with derive, isa? etc.
Creates a hierarchy object for use with derive, isa? etc.
(map f)
(map f coll)
(map f c1 c2)
(map f c1 c2 c3)
(map f c1 c2 c3 & colls)
Returns a lazy sequence consisting of the result of applying f to the set of first items of each coll, followed by applying f to the set of second items in each coll, until any one of the colls is exhausted. Any remaining items in other colls are ignored. Function f should accept number-of-colls arguments. Returns a transducer when no collection is provided.
Returns a lazy sequence consisting of the result of applying f to the set of first items of each coll, followed by applying f to the set of second items in each coll, until any one of the colls is exhausted. Any remaining items in other colls are ignored. Function f should accept number-of-colls arguments. Returns a transducer when no collection is provided.
(map-entry? x)
Returns true if x satisfies IMapEntry
Returns true if x satisfies IMapEntry
(map-indexed f)
(map-indexed f coll)
Returns a lazy sequence consisting of the result of applying f to 0 and the first item of coll, followed by applying f to 1 and the second item in coll, etc, until coll is exhausted. Thus function f should accept 2 arguments, index and item. Returns a stateful transducer when no collection is provided.
Returns a lazy sequence consisting of the result of applying f to 0 and the first item of coll, followed by applying f to 1 and the second item in coll, etc, until coll is exhausted. Thus function f should accept 2 arguments, index and item. Returns a stateful transducer when no collection is provided.
(mapcat f)
(mapcat f & colls)
Returns the result of applying concat to the result of applying map to f and colls. Thus function f should return a collection. Returns a transducer when no collections are provided
Returns the result of applying concat to the result of applying map to f and colls. Thus function f should return a collection. Returns a transducer when no collections are provided
(mapv f coll)
(mapv f c1 c2)
(mapv f c1 c2 c3)
(mapv f c1 c2 c3 & colls)
Returns a vector consisting of the result of applying f to the set of first items of each coll, followed by applying f to the set of second items in each coll, until any one of the colls is exhausted. Any remaining items in other colls are ignored. Function f should accept number-of-colls arguments.
Returns a vector consisting of the result of applying f to the set of first items of each coll, followed by applying f to the set of second items in each coll, until any one of the colls is exhausted. Any remaining items in other colls are ignored. Function f should accept number-of-colls arguments.
(max x)
(max x y)
(max x y & more)
Returns the greatest of the nums.
Returns the greatest of the nums.
(max-key k x)
(max-key k x y)
(max-key k x y & more)
Returns the x for which (k x), a number, is greatest.
If there are multiple such xs, the last one is returned.
Returns the x for which (k x), a number, is greatest. If there are multiple such xs, the last one is returned.
(memoize f)
Returns a memoized version of a referentially transparent function. The memoized version of the function keeps a cache of the mapping from arguments to results and, when calls with the same arguments are repeated often, has higher performance at the expense of higher memory use.
Returns a memoized version of a referentially transparent function. The memoized version of the function keeps a cache of the mapping from arguments to results and, when calls with the same arguments are repeated often, has higher performance at the expense of higher memory use.
(merge & maps)
Returns a map that consists of the rest of the maps conj-ed onto the first. If a key occurs in more than one map, the mapping from the latter (left-to-right) will be the mapping in the result.
Returns a map that consists of the rest of the maps conj-ed onto the first. If a key occurs in more than one map, the mapping from the latter (left-to-right) will be the mapping in the result.
(merge-with f & maps)
Returns a map that consists of the rest of the maps conj-ed onto the first. If a key occurs in more than one map, the mapping(s) from the latter (left-to-right) will be combined with the mapping in the result by calling (f val-in-result val-in-latter).
Returns a map that consists of the rest of the maps conj-ed onto the first. If a key occurs in more than one map, the mapping(s) from the latter (left-to-right) will be combined with the mapping in the result by calling (f val-in-result val-in-latter).
(meta o)
Returns the metadata of obj, returns nil if there is no metadata.
Returns the metadata of obj, returns nil if there is no metadata.
(methods multifn)
Given a multimethod, returns a map of dispatch values -> dispatch fns
Given a multimethod, returns a map of dispatch values -> dispatch fns
(min x)
(min x y)
(min x y & more)
Returns the least of the nums.
Returns the least of the nums.
(min-key k x)
(min-key k x y)
(min-key k x y & more)
Returns the x for which (k x), a number, is least.
If there are multiple such xs, the last one is returned.
Returns the x for which (k x), a number, is least. If there are multiple such xs, the last one is returned.
(mix-collection-hash hash-basis count)
Mix final collection hash for ordered or unordered collections. hash-basis is the combined collection hash, count is the number of elements included in the basis. Note this is the hash code consistent with =, different from .hashCode. See http://clojure.org/data_structures#hash for full algorithms.
Mix final collection hash for ordered or unordered collections. hash-basis is the combined collection hash, count is the number of elements included in the basis. Note this is the hash code consistent with =, different from .hashCode. See http://clojure.org/data_structures#hash for full algorithms.
(mod n d)
Modulus of num and div. Truncates toward negative infinity.
Modulus of num and div. Truncates toward negative infinity.
(name x)
Returns the name String of a string, symbol or keyword.
Returns the name String of a string, symbol or keyword.
(namespace x)
Returns the namespace String of a symbol or keyword, or nil if not present.
Returns the namespace String of a symbol or keyword, or nil if not present.
(nat-int? x)
Return true if x satisfies int? and is a natural integer value.
Return true if x satisfies int? and is a natural integer value.
(native-satisfies? p x)
Internal - do not use!
Internal - do not use!
(neg-int? x)
Return true if x satisfies int? and is negative.
Return true if x satisfies int? and is negative.
(neg? x)
Returns true if num is less than zero, else false
Returns true if num is less than zero, else false
(newline)
(newline opts)
Prints a newline using print-fn
Prints a newline using *print-fn*
(next coll)
Returns a seq of the items after the first. Calls seq on its argument. If there are no more items, returns nil
Returns a seq of the items after the first. Calls seq on its argument. If there are no more items, returns nil
(nil? x)
Returns true if x is nil, false otherwise.
Returns true if x is nil, false otherwise.
(not x)
Returns true if x is logical false, false otherwise.
Returns true if x is logical false, false otherwise.
(not-any? pred coll)
Returns false if (pred x) is logical true for any x in coll, else true.
Returns false if (pred x) is logical true for any x in coll, else true.
(not-empty coll)
If coll is empty, returns nil, else coll
If coll is empty, returns nil, else coll
(not-every? pred coll)
Returns false if (pred x) is logical true for every x in coll, else true.
Returns false if (pred x) is logical true for every x in coll, else true.
(not= x)
(not= x y)
(not= x y & more)
Same as (not (= obj1 obj2))
Same as (not (= obj1 obj2))
(ns-interns* sym)
Returns a map of the intern mappings for the namespace. Bootstrap only.
Returns a map of the intern mappings for the namespace. Bootstrap only.
(ns-name ns-obj)
Returns the name of the namespace, a Namespace object. Bootstrap only.
Returns the name of the namespace, a Namespace object. Bootstrap only.
(nth coll n)
(nth coll n not-found)
Returns the value at the index. get returns nil if index out of bounds, nth throws an exception unless not-found is supplied. nth also works for strings, arrays, regex Matchers and Lists, and, in O(n) time, for sequences.
Returns the value at the index. get returns nil if index out of bounds, nth throws an exception unless not-found is supplied. nth also works for strings, arrays, regex Matchers and Lists, and, in O(n) time, for sequences.
(nthnext coll n)
Returns the nth next of coll, (seq coll) when n is 0.
Returns the nth next of coll, (seq coll) when n is 0.
(nthrest coll n)
Returns the nth rest of coll, coll when n is 0.
Returns the nth rest of coll, coll when n is 0.
(number? x)
Returns true if x is a JavaScript number.
Returns true if x is a JavaScript number.
(obj-map & keyvals)
keyval => key val Returns a new object map with supplied mappings.
keyval => key val Returns a new object map with supplied mappings.
(object-array size-or-seq)
(object-array size init-val-or-seq)
Creates an array of objects. Does not coerce array, provided for compatibility with Clojure.
Creates an array of objects. Does not coerce array, provided for compatibility with Clojure.
(object? x)
Returns true if x's constructor is Object
Returns true if x's constructor is Object
(odd? n)
Returns true if n is odd, throws an exception if n is not an integer
Returns true if n is odd, throws an exception if n is not an integer
(parents tag)
(parents h tag)
Returns the immediate parents of tag, either via a JavaScript type inheritance relationship or a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy
Returns the immediate parents of tag, either via a JavaScript type inheritance relationship or a relationship established via derive. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to the global hierarchy
(partial f)
(partial f arg1)
(partial f arg1 arg2)
(partial f arg1 arg2 arg3)
(partial f arg1 arg2 arg3 & more)
Takes a function f and fewer than the normal arguments to f, and returns a fn that takes a variable number of additional args. When called, the returned function calls f with args + additional args.
Takes a function f and fewer than the normal arguments to f, and returns a fn that takes a variable number of additional args. When called, the returned function calls f with args + additional args.
(partition n coll)
(partition n step coll)
(partition n step pad coll)
Returns a lazy sequence of lists of n items each, at offsets step apart. If step is not supplied, defaults to n, i.e. the partitions do not overlap. If a pad collection is supplied, use its elements as necessary to complete last partition up to n items. In case there are not enough padding elements, return a partition with less than n items.
Returns a lazy sequence of lists of n items each, at offsets step apart. If step is not supplied, defaults to n, i.e. the partitions do not overlap. If a pad collection is supplied, use its elements as necessary to complete last partition up to n items. In case there are not enough padding elements, return a partition with less than n items.
(partition-all n)
(partition-all n coll)
(partition-all n step coll)
Returns a lazy sequence of lists like partition, but may include partitions with fewer than n items at the end. Returns a stateful transducer when no collection is provided.
Returns a lazy sequence of lists like partition, but may include partitions with fewer than n items at the end. Returns a stateful transducer when no collection is provided.
(partition-by f)
(partition-by f coll)
Applies f to each value in coll, splitting it each time f returns a new value. Returns a lazy seq of partitions. Returns a stateful transducer when no collection is provided.
Applies f to each value in coll, splitting it each time f returns a new value. Returns a lazy seq of partitions. Returns a stateful transducer when no collection is provided.
(peek coll)
For a list or queue, same as first, for a vector, same as, but much more efficient than, last. If the collection is empty, returns nil.
For a list or queue, same as first, for a vector, same as, but much more efficient than, last. If the collection is empty, returns nil.
(persistent! tcoll)
Returns a new, persistent version of the transient collection, in constant time. The transient collection cannot be used after this call, any such use will throw an exception.
Returns a new, persistent version of the transient collection, in constant time. The transient collection cannot be used after this call, any such use will throw an exception.
(pop coll)
For a list or queue, returns a new list/queue without the first item, for a vector, returns a new vector without the last item. Note - not the same as next/butlast.
For a list or queue, returns a new list/queue without the first item, for a vector, returns a new vector without the last item. Note - not the same as next/butlast.
(pop! tcoll)
Removes the last item from a transient vector. If the collection is empty, throws an exception. Returns tcoll
Removes the last item from a transient vector. If the collection is empty, throws an exception. Returns tcoll
(pos-int? x)
Return true if x satisfies int? and is positive.
Return true if x satisfies int? and is positive.
(pos? x)
Returns true if num is greater than zero, else false
Returns true if num is greater than zero, else false
(pr & objs)
Prints the object(s) using string-print. Prints the object(s), separated by spaces if there is more than one. By default, pr and prn print in a way that objects can be read by the reader
Prints the object(s) using string-print. Prints the object(s), separated by spaces if there is more than one. By default, pr and prn print in a way that objects can be read by the reader
(pr-str & objs)
pr to a string, returning it. Fundamental entrypoint to IPrintWithWriter.
pr to a string, returning it. Fundamental entrypoint to IPrintWithWriter.
(pr-str* obj)
Support so that collections can implement toString without loading all the printing machinery.
Support so that collections can implement toString without loading all the printing machinery.
(pr-str-with-opts objs opts)
Prints a sequence of objects to a string, observing all the options given in opts
Prints a sequence of objects to a string, observing all the options given in opts
(prefer-method multifn dispatch-val-x dispatch-val-y)
Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y when there is a conflict
Causes the multimethod to prefer matches of dispatch-val-x over dispatch-val-y when there is a conflict
(prefers multifn)
Given a multimethod, returns a map of preferred value -> set of other values
Given a multimethod, returns a map of preferred value -> set of other values
(prim-seq prim)
(prim-seq prim i)
Create seq from a primitive JavaScript Array-like.
Create seq from a primitive JavaScript Array-like.
Prints the object(s) using string-print. print and println produce output for human consumption.
Prints the object(s) using string-print. print and println produce output for human consumption.
(print-str & objs)
print to a string, returning it
print to a string, returning it
(println & objs)
Same as print followed by (newline)
Same as print followed by (newline)
(println-str & objs)
println to a string, returning it
println to a string, returning it
(prn & objs)
Same as pr followed by (newline).
Same as pr followed by (newline).
(prn-str & objs)
Same as pr-str followed by (newline)
Same as pr-str followed by (newline)
(prn-str-with-opts objs opts)
Same as pr-str-with-opts followed by (newline)
Same as pr-str-with-opts followed by (newline)
(qualified-ident? x)
Return true if x is a symbol or keyword with a namespace
Return true if x is a symbol or keyword with a namespace
(qualified-keyword? x)
Return true if x is a keyword with a namespace
Return true if x is a keyword with a namespace
(qualified-symbol? x)
Return true if x is a symbol with a namespace
Return true if x is a symbol with a namespace
(quot n d)
quot[ient] of dividing numerator by denominator.
quot[ient] of dividing numerator by denominator.
(rand)
(rand n)
Returns a random floating point number between 0 (inclusive) and n (default 1) (exclusive).
Returns a random floating point number between 0 (inclusive) and n (default 1) (exclusive).
(rand-int n)
Returns a random integer between 0 (inclusive) and n (exclusive).
Returns a random integer between 0 (inclusive) and n (exclusive).
(rand-nth coll)
Return a random element of the (sequential) collection. Will have the same performance characteristics as nth for the given collection.
Return a random element of the (sequential) collection. Will have the same performance characteristics as nth for the given collection.
(random-sample prob)
(random-sample prob coll)
Returns items from coll with random probability of prob (0.0 - 1.0). Returns a transducer when no collection is provided.
Returns items from coll with random probability of prob (0.0 - 1.0). Returns a transducer when no collection is provided.
(range)
(range end)
(range start end)
(range start end step)
Returns a lazy seq of nums from start (inclusive) to end (exclusive), by step, where start defaults to 0, step to 1, and end to infinity.
Returns a lazy seq of nums from start (inclusive) to end (exclusive), by step, where start defaults to 0, step to 1, and end to infinity.
(re-find re s)
Returns the first regex match, if any, of s to re, using re.exec(s). Returns a vector, containing first the matching substring, then any capturing groups if the regular expression contains capturing groups.
Returns the first regex match, if any, of s to re, using re.exec(s). Returns a vector, containing first the matching substring, then any capturing groups if the regular expression contains capturing groups.
(re-matches re s)
Returns the result of (re-find re s) if re fully matches s.
Returns the result of (re-find re s) if re fully matches s.
(re-pattern s)
Returns an instance of RegExp which has compiled the provided string.
Returns an instance of RegExp which has compiled the provided string.
(re-seq re s)
Returns a lazy sequence of successive matches of re in s.
Returns a lazy sequence of successive matches of re in s.
(realized? x)
Returns true if a value has been produced for a delay or lazy sequence.
Returns true if a value has been produced for a delay or lazy sequence.
(record? x)
Return true if x satisfies IRecord
Return true if x satisfies IRecord
(reduce f coll)
(reduce f val coll)
f should be a function of 2 arguments. If val is not supplied, returns the result of applying f to the first 2 items in coll, then applying f to that result and the 3rd item, etc. If coll contains no items, f must accept no arguments as well, and reduce returns the result of calling f with no arguments. If coll has only 1 item, it is returned and f is not called. If val is supplied, returns the result of applying f to val and the first item in coll, then applying f to that result and the 2nd item, etc. If coll contains no items, returns val and f is not called.
f should be a function of 2 arguments. If val is not supplied, returns the result of applying f to the first 2 items in coll, then applying f to that result and the 3rd item, etc. If coll contains no items, f must accept no arguments as well, and reduce returns the result of calling f with no arguments. If coll has only 1 item, it is returned and f is not called. If val is supplied, returns the result of applying f to val and the first item in coll, then applying f to that result and the 2nd item, etc. If coll contains no items, returns val and f is not called.
(reduce-kv f init coll)
Reduces an associative collection. f should be a function of 3 arguments. Returns the result of applying f to init, the first key and the first value in coll, then applying f to that result and the 2nd key and value, etc. If coll contains no entries, returns init and f is not called. Note that reduce-kv is supported on vectors, where the keys will be the ordinals.
Reduces an associative collection. f should be a function of 3 arguments. Returns the result of applying f to init, the first key and the first value in coll, then applying f to that result and the 2nd key and value, etc. If coll contains no entries, returns init and f is not called. Note that reduce-kv is supported on vectors, where the keys will be the ordinals.
(reduceable? x)
Returns true if coll satisfies IReduce
Returns true if coll satisfies IReduce
(reduced x)
Wraps x in a way such that a reduce will terminate with the value x
Wraps x in a way such that a reduce will terminate with the value x
(reduced? r)
Returns true if x is the result of a call to reduced
Returns true if x is the result of a call to reduced
(reductions f coll)
(reductions f init coll)
Returns a lazy seq of the intermediate values of the reduction (as per reduce) of coll by f, starting with init.
Returns a lazy seq of the intermediate values of the reduction (as per reduce) of coll by f, starting with init.
(regexp? x)
Returns true if x is a JavaScript RegExp instance.
Returns true if x is a JavaScript RegExp instance.
(rem n d)
remainder of dividing numerator by denominator.
remainder of dividing numerator by denominator.
(remove pred)
(remove pred coll)
Returns a lazy sequence of the items in coll for which (pred item) returns logical false. pred must be free of side-effects. Returns a transducer when no collection is provided.
Returns a lazy sequence of the items in coll for which (pred item) returns logical false. pred must be free of side-effects. Returns a transducer when no collection is provided.
(remove-all-methods multifn)
Removes all of the methods of multimethod.
Removes all of the methods of multimethod.
(remove-method multifn dispatch-val)
Removes the method of multimethod associated with dispatch-value.
Removes the method of multimethod associated with dispatch-value.
(remove-tap f)
Remove f from the tap set.
Remove f from the tap set.
(remove-watch iref key)
Removes a watch (set by add-watch) from a reference
Removes a watch (set by add-watch) from a reference
(repeat x)
(repeat n x)
Returns a lazy (infinite!, or length n if supplied) sequence of xs.
Returns a lazy (infinite!, or length n if supplied) sequence of xs.
(repeatedly f)
(repeatedly n f)
Takes a function of no args, presumably with side effects, and returns an infinite (or length n if supplied) lazy sequence of calls to it
Takes a function of no args, presumably with side effects, and returns an infinite (or length n if supplied) lazy sequence of calls to it
(replace smap)
(replace smap coll)
Given a map of replacement pairs and a vector/collection, returns a vector/seq with any elements = a key in smap replaced with the corresponding val in smap. Returns a transducer when no collection is provided.
Given a map of replacement pairs and a vector/collection, returns a vector/seq with any elements = a key in smap replaced with the corresponding val in smap. Returns a transducer when no collection is provided.
(replicate n x)
DEPRECATED: Use 'repeat' instead. Returns a lazy seq of n xs.
DEPRECATED: Use 'repeat' instead. Returns a lazy seq of n xs.
(reset! a new-value)
Sets the value of atom to newval without regard for the current value. Returns new-value.
Sets the value of atom to newval without regard for the current value. Returns new-value.
(reset-meta! iref m)
Atomically resets the metadata for an atom
Atomically resets the metadata for an atom
(reset-vals! a new-value)
Sets the value of atom to newval. Returns [old new], the value of the atom before and after the reset.
Sets the value of atom to newval. Returns [old new], the value of the atom before and after the reset.
(rest coll)
Returns a possibly empty seq of the items after the first. Calls seq on its argument.
Returns a possibly empty seq of the items after the first. Calls seq on its argument.
(reverse coll)
Returns a seq of the items in coll in reverse order. Not lazy.
Returns a seq of the items in coll in reverse order. Not lazy.
(reversible? coll)
Returns true if coll satisfies? IReversible.
Returns true if coll satisfies? IReversible.
(rseq rev)
Returns, in constant time, a seq of the items in rev (which can be a vector or sorted-map), in reverse order. If rev is empty returns nil
Returns, in constant time, a seq of the items in rev (which can be a vector or sorted-map), in reverse order. If rev is empty returns nil
(rsubseq sc test key)
(rsubseq sc start-test start-key end-test end-key)
sc must be a sorted collection, test(s) one of <, <=, > or
=. Returns a reverse seq of those entries with keys ek for which (test (.. sc comparator (compare ek key)) 0) is true
sc must be a sorted collection, test(s) one of <, <=, > or >=. Returns a reverse seq of those entries with keys ek for which (test (.. sc comparator (compare ek key)) 0) is true
(run! proc coll)
Runs the supplied procedure (via reduce), for purposes of side effects, on successive items in the collection. Returns nil
Runs the supplied procedure (via reduce), for purposes of side effects, on successive items in the collection. Returns nil
(select-keys map keyseq)
Returns a map containing only those entries in map whose key is in keys
Returns a map containing only those entries in map whose key is in keys
(seq coll)
Returns a seq on the collection. If the collection is empty, returns nil. (seq nil) returns nil. seq also works on Strings.
Returns a seq on the collection. If the collection is empty, returns nil. (seq nil) returns nil. seq also works on Strings.
(seqable? s)
Return true if the seq function is supported for s
Return true if the seq function is supported for s
(sequence coll)
(sequence xform coll)
(sequence xform coll & colls)
Coerces coll to a (possibly empty) sequence, if it is not already one. Will not force a lazy seq. (sequence nil) yields (), When a transducer is supplied, returns a lazy sequence of applications of the transform to the items in coll(s), i.e. to the set of first items of each coll, followed by the set of second items in each coll, until any one of the colls is exhausted. Any remaining items in other colls are ignored. The transform should accept number-of-colls arguments
Coerces coll to a (possibly empty) sequence, if it is not already one. Will not force a lazy seq. (sequence nil) yields (), When a transducer is supplied, returns a lazy sequence of applications of the transform to the items in coll(s), i.e. to the set of first items of each coll, followed by the set of second items in each coll, until any one of the colls is exhausted. Any remaining items in other colls are ignored. The transform should accept number-of-colls arguments
(sequential? x)
Returns true if coll satisfies ISequential
Returns true if coll satisfies ISequential
(set coll)
Returns a set of the distinct elements of coll.
Returns a set of the distinct elements of coll.
(set-print-err-fn! f)
Set print-err-fn to f.
Set *print-err-fn* to f.
(set-validator! iref val)
Sets the validator-fn for an atom. validator-fn must be nil or a side-effect-free fn of one argument, which will be passed the intended new state on any state change. If the new state is unacceptable, the validator-fn should return false or throw an Error. If the current state is not acceptable to the new validator, an Error will be thrown and the validator will not be changed.
Sets the validator-fn for an atom. validator-fn must be nil or a side-effect-free fn of one argument, which will be passed the intended new state on any state change. If the new state is unacceptable, the validator-fn should return false or throw an Error. If the current state is not acceptable to the new validator, an Error will be thrown and the validator will not be changed.
(set? x)
Returns true if x satisfies ISet
Returns true if x satisfies ISet
(shuffle coll)
Return a random permutation of coll
Return a random permutation of coll
(simple-ident? x)
Return true if x is a symbol or keyword without a namespace
Return true if x is a symbol or keyword without a namespace
(simple-keyword? x)
Return true if x is a keyword without a namespace
Return true if x is a keyword without a namespace
(simple-symbol? x)
Return true if x is a symbol without a namespace
Return true if x is a symbol without a namespace
(some pred coll)
Returns the first logical true value of (pred x) for any x in coll, else nil. One common idiom is to use a set as pred, for example this will return :fred if :fred is in the sequence, otherwise nil: (some #{:fred} coll)
Returns the first logical true value of (pred x) for any x in coll, else nil. One common idiom is to use a set as pred, for example this will return :fred if :fred is in the sequence, otherwise nil: (some #{:fred} coll)
(some-fn p)
(some-fn p1 p2)
(some-fn p1 p2 p3)
(some-fn p1 p2 p3 & ps)
Takes a set of predicates and returns a function f that returns the first logical true value returned by one of its composing predicates against any of its arguments, else it returns logical false. Note that f is short-circuiting in that it will stop execution on the first argument that triggers a logical true result against the original predicates.
Takes a set of predicates and returns a function f that returns the first logical true value returned by one of its composing predicates against any of its arguments, else it returns logical false. Note that f is short-circuiting in that it will stop execution on the first argument that triggers a logical true result against the original predicates.
(some? x)
Returns true if x is not nil, false otherwise.
Returns true if x is not nil, false otherwise.
(sort coll)
(sort comp coll)
Returns a sorted sequence of the items in coll. Comp can be boolean-valued comparison function, or a -/0/+ valued comparator. Comp defaults to compare.
Returns a sorted sequence of the items in coll. Comp can be boolean-valued comparison function, or a -/0/+ valued comparator. Comp defaults to compare.
(sort-by keyfn coll)
(sort-by keyfn comp coll)
Returns a sorted sequence of the items in coll, where the sort order is determined by comparing (keyfn item). Comp can be boolean-valued comparison function, or a -/0/+ valued comparator. Comp defaults to compare.
Returns a sorted sequence of the items in coll, where the sort order is determined by comparing (keyfn item). Comp can be boolean-valued comparison function, or a -/0/+ valued comparator. Comp defaults to compare.
(sorted-map & keyvals)
keyval => key val Returns a new sorted map with supplied mappings.
keyval => key val Returns a new sorted map with supplied mappings.
(sorted-map-by comparator & keyvals)
keyval => key val Returns a new sorted map with supplied mappings, using the supplied comparator.
keyval => key val Returns a new sorted map with supplied mappings, using the supplied comparator.
(sorted-set & keys)
Returns a new sorted set with supplied keys.
Returns a new sorted set with supplied keys.
(sorted-set-by comparator & keys)
Returns a new sorted set with supplied keys, using the supplied comparator.
Returns a new sorted set with supplied keys, using the supplied comparator.
(sorted? x)
Returns true if coll satisfies ISorted
Returns true if coll satisfies ISorted
(special-symbol? x)
Returns true if x names a special form
Returns true if x names a special form
(split-at n coll)
Returns a vector of [(take n coll) (drop n coll)]
Returns a vector of [(take n coll) (drop n coll)]
(split-with pred coll)
Returns a vector of [(take-while pred coll) (drop-while pred coll)]
Returns a vector of [(take-while pred coll) (drop-while pred coll)]
(str)
(str x)
(str x & ys)
With no args, returns the empty string. With one arg x, returns x.toString(). (str nil) returns the empty string. With more than one arg, returns the concatenation of the str values of the args.
With no args, returns the empty string. With one arg x, returns x.toString(). (str nil) returns the empty string. With more than one arg, returns the concatenation of the str values of the args.
(string? x)
Returns true if x is a JavaScript string.
Returns true if x is a JavaScript string.
(subs s start)
(subs s start end)
Returns the substring of s beginning at start inclusive, and ending at end (defaults to length of string), exclusive.
Returns the substring of s beginning at start inclusive, and ending at end (defaults to length of string), exclusive.
(subseq sc test key)
(subseq sc start-test start-key end-test end-key)
sc must be a sorted collection, test(s) one of <, <=, > or
=. Returns a seq of those entries with keys ek for which (test (.. sc comparator (compare ek key)) 0) is true
sc must be a sorted collection, test(s) one of <, <=, > or >=. Returns a seq of those entries with keys ek for which (test (.. sc comparator (compare ek key)) 0) is true
(subvec v start)
(subvec v start end)
Returns a persistent vector of the items in vector from start (inclusive) to end (exclusive). If end is not supplied, defaults to (count vector). This operation is O(1) and very fast, as the resulting vector shares structure with the original and no trimming is done.
Returns a persistent vector of the items in vector from start (inclusive) to end (exclusive). If end is not supplied, defaults to (count vector). This operation is O(1) and very fast, as the resulting vector shares structure with the original and no trimming is done.
(swap! a f)
(swap! a f x)
(swap! a f x y)
(swap! a f x y & more)
Atomically swaps the value of atom to be: (apply f current-value-of-atom args). Note that f may be called multiple times, and thus should be free of side effects. Returns the value that was swapped in.
Atomically swaps the value of atom to be: (apply f current-value-of-atom args). Note that f may be called multiple times, and thus should be free of side effects. Returns the value that was swapped in.
(swap-vals! a f)
(swap-vals! a f x)
(swap-vals! a f x y)
(swap-vals! a f x y & more)
Atomically swaps the value of atom to be: (apply f current-value-of-atom args). Note that f may be called multiple times, and thus should be free of side effects. Returns [old new], the value of the atom before and after the swap.
Atomically swaps the value of atom to be: (apply f current-value-of-atom args). Note that f may be called multiple times, and thus should be free of side effects. Returns [old new], the value of the atom before and after the swap.
(symbol name)
(symbol ns name)
Returns a Symbol with the given namespace and name.
Returns a Symbol with the given namespace and name.
(symbol-identical? x y)
Efficient test to determine that two symbols are identical.
Efficient test to determine that two symbols are identical.
(system-time)
Returns highest resolution time offered by host in milliseconds.
Returns highest resolution time offered by host in milliseconds.
(tagged-literal tag form)
Construct a data representation of a tagged literal from a tag symbol and a form.
Construct a data representation of a tagged literal from a tag symbol and a form.
(tagged-literal? value)
Return true if the value is the data representation of a tagged literal
Return true if the value is the data representation of a tagged literal
(take n)
(take n coll)
Returns a lazy sequence of the first n items in coll, or all items if there are fewer than n. Returns a stateful transducer when no collection is provided.
Returns a lazy sequence of the first n items in coll, or all items if there are fewer than n. Returns a stateful transducer when no collection is provided.
(take-last n coll)
Returns a seq of the last n items in coll. Depending on the type of coll may be no better than linear time. For vectors, see also subvec.
Returns a seq of the last n items in coll. Depending on the type of coll may be no better than linear time. For vectors, see also subvec.
(take-nth n)
(take-nth n coll)
Returns a lazy seq of every nth item in coll. Returns a stateful transducer when no collection is provided.
Returns a lazy seq of every nth item in coll. Returns a stateful transducer when no collection is provided.
(take-while pred)
(take-while pred coll)
Returns a lazy sequence of successive items from coll while (pred item) returns logical true. pred must be free of side-effects. Returns a transducer when no collection is provided.
Returns a lazy sequence of successive items from coll while (pred item) returns logical true. pred must be free of side-effects. Returns a transducer when no collection is provided.
(tap> x)
Sends x to any taps. Returns the result of exec-tap-fn, a Boolean value.
Sends x to any taps. Returns the result of *exec-tap-fn*, a Boolean value.
(test v)
test [v] finds fn at key :test in var metadata and calls it, presuming failure will throw exception
test [v] finds fn at key :test in var metadata and calls it, presuming failure will throw exception
(to-array s)
Naive impl of to-array as a start.
Naive impl of to-array as a start.
(to-array-2d coll)
Returns a (potentially-ragged) 2-dimensional array containing the contents of coll.
Returns a (potentially-ragged) 2-dimensional array containing the contents of coll.
(trampoline f)
(trampoline f & args)
trampoline can be used to convert algorithms requiring mutual recursion without stack consumption. Calls f with supplied args, if any. If f returns a fn, calls that fn with no arguments, and continues to repeat, until the return value is not a fn, then returns that non-fn value. Note that if you want to return a fn as a final value, you must wrap it in some data structure and unpack it after trampoline returns.
trampoline can be used to convert algorithms requiring mutual recursion without stack consumption. Calls f with supplied args, if any. If f returns a fn, calls that fn with no arguments, and continues to repeat, until the return value is not a fn, then returns that non-fn value. Note that if you want to return a fn as a final value, you must wrap it in some data structure and unpack it after trampoline returns.
(transduce xform f coll)
(transduce xform f init coll)
reduce with a transformation of f (xf). If init is not supplied, (f) will be called to produce it. f should be a reducing step function that accepts both 1 and 2 arguments, if it accepts only 2 you can add the arity-1 with 'completing'. Returns the result of applying (the transformed) xf to init and the first item in coll, then applying xf to that result and the 2nd item, etc. If coll contains no items, returns init and f is not called. Note that certain transforms may inject or skip items.
reduce with a transformation of f (xf). If init is not supplied, (f) will be called to produce it. f should be a reducing step function that accepts both 1 and 2 arguments, if it accepts only 2 you can add the arity-1 with 'completing'. Returns the result of applying (the transformed) xf to init and the first item in coll, then applying xf to that result and the 2nd item, etc. If coll contains no items, returns init and f is not called. Note that certain transforms may inject or skip items.
(transient coll)
Returns a new, transient version of the collection, in constant time.
Returns a new, transient version of the collection, in constant time.
(tree-seq branch? children root)
Returns a lazy sequence of the nodes in a tree, via a depth-first walk. branch? must be a fn of one arg that returns true if passed a node that can have children (but may not). children must be a fn of one arg that returns a sequence of the children. Will only be called on nodes for which branch? returns true. Root is the root node of the tree.
Returns a lazy sequence of the nodes in a tree, via a depth-first walk. branch? must be a fn of one arg that returns true if passed a node that can have children (but may not). children must be a fn of one arg that returns a sequence of the children. Will only be called on nodes for which branch? returns true. Root is the root node of the tree.
(true? x)
Returns true if x is the value true, false otherwise.
Returns true if x is the value true, false otherwise.
(unchecked-add)
(unchecked-add x)
(unchecked-add x y)
(unchecked-add x y & more)
Returns the sum of nums. (+) returns 0.
Returns the sum of nums. (+) returns 0.
(unchecked-add-int)
(unchecked-add-int x)
(unchecked-add-int x y)
(unchecked-add-int x y & more)
Returns the sum of nums. (+) returns 0.
Returns the sum of nums. (+) returns 0.
(unchecked-dec x)
Returns a number one less than x, an int.
Returns a number one less than x, an int.
(unchecked-dec-int x)
Returns a number one less than x, an int.
Returns a number one less than x, an int.
(unchecked-divide-int x)
(unchecked-divide-int x y)
(unchecked-divide-int x y & more)
If no denominators are supplied, returns 1/numerator, else returns numerator divided by all of the denominators.
If no denominators are supplied, returns 1/numerator, else returns numerator divided by all of the denominators.
(unchecked-int x)
Coerce to int by stripping decimal places.
Coerce to int by stripping decimal places.
(unchecked-long x)
Coerce to long by stripping decimal places. Identical to `int'.
Coerce to long by stripping decimal places. Identical to `int'.
(unchecked-multiply)
(unchecked-multiply x)
(unchecked-multiply x y)
(unchecked-multiply x y & more)
Returns the product of nums. (*) returns 1.
Returns the product of nums. (*) returns 1.
(unchecked-multiply-int)
(unchecked-multiply-int x)
(unchecked-multiply-int x y)
(unchecked-multiply-int x y & more)
Returns the product of nums. (*) returns 1.
Returns the product of nums. (*) returns 1.
(unchecked-subtract x)
(unchecked-subtract x y)
(unchecked-subtract x y & more)
If no ys are supplied, returns the negation of x, else subtracts the ys from x and returns the result.
If no ys are supplied, returns the negation of x, else subtracts the ys from x and returns the result.
(unchecked-subtract-int x)
(unchecked-subtract-int x y)
(unchecked-subtract-int x y & more)
If no ys are supplied, returns the negation of x, else subtracts the ys from x and returns the result.
If no ys are supplied, returns the negation of x, else subtracts the ys from x and returns the result.
(undefined? x)
Returns true if x identical to the JavaScript undefined value.
Returns true if x identical to the JavaScript undefined value.
(underive tag parent)
(underive h tag parent)
Removes a parent/child relationship between parent and tag. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to, and modifies, the global hierarchy.
Removes a parent/child relationship between parent and tag. h must be a hierarchy obtained from make-hierarchy, if not supplied defaults to, and modifies, the global hierarchy.
(unreduced x)
If x is reduced?, returns (deref x), else returns x
If x is reduced?, returns (deref x), else returns x
(unsigned-bit-shift-right x n)
Bitwise shift right with zero fill
Bitwise shift right with zero fill
(update m k f)
(update m k f x)
(update m k f x y)
(update m k f x y z)
(update m k f x y z & more)
'Updates' a value in an associative structure, where k is a key and f is a function that will take the old value and any supplied args and return the new value, and returns a new structure. If the key does not exist, nil is passed as the old value.
'Updates' a value in an associative structure, where k is a key and f is a function that will take the old value and any supplied args and return the new value, and returns a new structure. If the key does not exist, nil is passed as the old value.
(update-in m [k & ks] f)
(update-in m [k & ks] f a)
(update-in m [k & ks] f a b)
(update-in m [k & ks] f a b c)
(update-in m [k & ks] f a b c & args)
'Updates' a value in a nested associative structure, where ks is a sequence of keys and f is a function that will take the old value and any supplied args and return the new value, and returns a new nested structure. If any levels do not exist, hash-maps will be created.
'Updates' a value in a nested associative structure, where ks is a sequence of keys and f is a function that will take the old value and any supplied args and return the new value, and returns a new nested structure. If any levels do not exist, hash-maps will be created.
(uri? x)
Returns true x is a goog.Uri instance.
Returns true x is a goog.Uri instance.
(val map-entry)
Returns the value in the map entry.
Returns the value in the map entry.
(vals hash-map)
Returns a sequence of the map's values.
Returns a sequence of the map's values.
(var? v)
Returns true if v is of type cljs.core.Var
Returns true if v is of type cljs.core.Var
(vary-meta obj f)
(vary-meta obj f a)
(vary-meta obj f a b)
(vary-meta obj f a b c)
(vary-meta obj f a b c d)
(vary-meta obj f a b c d & args)
Returns an object of the same type and value as obj, with (apply f (meta obj) args) as its metadata.
Returns an object of the same type and value as obj, with (apply f (meta obj) args) as its metadata.
(vec coll)
Creates a new vector containing the contents of coll. JavaScript arrays will be aliased and should not be modified.
Creates a new vector containing the contents of coll. JavaScript arrays will be aliased and should not be modified.
(vector & args)
Creates a new vector containing the args.
Creates a new vector containing the args.
(vector? x)
Return true if x satisfies IVector
Return true if x satisfies IVector
(volatile! val)
Creates and returns a Volatile with an initial value of val.
Creates and returns a Volatile with an initial value of val.
(volatile? x)
Returns true if x is a volatile.
Returns true if x is a volatile.
(vreset! vol newval)
Sets the value of volatile to newval without regard for the current value. Returns newval.
Sets the value of volatile to newval without regard for the current value. Returns newval.
(with-meta o meta)
Returns an object of the same type and value as obj, with map m as its metadata.
Returns an object of the same type and value as obj, with map m as its metadata.
(zero? x)
Returns true if num is zero, else false
Returns true if num is zero, else false
(zipmap keys vals)
Returns a map with the keys mapped to the corresponding vals.
Returns a map with the keys mapped to the corresponding vals.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close