Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Tree: 3be51a0694
Fetching contributors…

Cannot retrieve contributors at this time

11718 lines (11717 sloc) 585.718 kB
{:namespaces
({:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.core-api.html",
:name "clojure.core",
:doc "Fundamental library of the Clojure language"}
{:source-url
"https://github.com/clojure/clojure/blob/9baebd091b1301aecaaac3b5f9c7ede5dcc58f8c/src/clj/clojure/data.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.data-api.html",
:name "clojure.data",
:author "Stuart Halloway",
:doc "Non-core data functions."}
{:source-url
"https://github.com/clojure/clojure/blob/59b65669860a1f33825775494809e5d500c19c63/src/clj/clojure/inspector.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.inspector-api.html",
:name "clojure.inspector",
:author "Rich Hickey",
:doc "Graphical object inspector for Clojure data structures."}
{:source-url
"https://github.com/clojure/clojure/blob/b9b1a094499b69a94bd47fc94c4f082d80239fa9/src/clj/clojure/java/browse.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.java.browse-api.html",
:name "clojure.java.browse",
:author "Christophe Grand",
:doc "Start a web browser from Clojure"}
{:source-url
"https://github.com/clojure/clojure/blob/af81bca10c2ba783d56d132aeb7b8474fcf3dbdd/src/clj/clojure/java/io.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.java.io-api.html",
:name "clojure.java.io",
:doc nil}
{:source-url
"https://github.com/clojure/clojure/blob/be9ff491c4b2c23790fb316804551768960e355d/src/clj/clojure/java/javadoc.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.java.javadoc-api.html",
:name "clojure.java.javadoc",
:author "Christophe Grand, Stuart Sierra",
:doc "A repl helper to quickly open javadocs."}
{:source-url
"https://github.com/clojure/clojure/blob/fe0cfc71e6ec7b546066188c555b01dae0e368e8/src/clj/clojure/java/shell.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.java.shell-api.html",
:name "clojure.java.shell",
:doc nil}
{:source-url
"https://github.com/clojure/clojure/blob/728972b026a323fc941a5d560b81d37453dc6cad/src/clj/clojure/main.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.main-api.html",
:name "clojure.main",
:doc nil}
{:source-url
"https://github.com/clojure/clojure/blob/404110d0de559bede6eda4b3f14424059b8540b8/src/clj/clojure/pprint.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.pprint-api.html",
:name "clojure.pprint",
:author "Tom Faulhaber",
:doc
"A Pretty Printer for Clojure\n\nclojure.pprint implements a flexible system for printing structured data\nin a pleasing, easy-to-understand format. Basic use of the pretty printer is \nsimple, just call pprint instead of println. More advanced users can use \nthe building blocks provided to create custom output formats. \n\nOut of the box, pprint supports a simple structured format for basic data \nand a specialized format for Clojure source code. More advanced formats, \nincluding formats that don't look like Clojure data at all like XML and \nJSON, can be rendered by creating custom dispatch functions. \n\nIn addition to the pprint function, this module contains cl-format, a text \nformatting function which is fully compatible with the format function in \nCommon Lisp. Because pretty printing directives are directly integrated with\ncl-format, it supports very concise custom dispatch. It also provides\na more powerful alternative to Clojure's standard format function.\n\nSee documentation for pprint and cl-format for more information or \ncomplete documentation on the the clojure web site on github."}
{:source-url
"https://github.com/clojure/clojure/blob/479bb230b410cd39f3ca94120729096a38c8df67/src/clj/clojure/reflect.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.reflect-api.html",
:name "clojure.reflect",
:author "Stuart Halloway",
:doc
"Reflection on Host Types\nAlpha - subject to change.\n\nTwo main entry points: \n\n* type-reflect reflects on something that implements TypeReference.\n* reflect (for REPL use) reflects on the class of an instance, or\n on a class if passed a class\n\nKey features:\n\n* Exposes the read side of reflection as pure data. Reflecting\n on a type returns a map with keys :bases, :flags, and :members.\n\n* Canonicalizes class names as Clojure symbols. Types can extend\n to the TypeReference protocol to indicate that they can be\n unambiguously resolved as a type name. The canonical format\n requires one non-Java-ish convention: array brackets are <>\n instead of [] so they can be part of a Clojure symbol.\n\n* Pluggable Reflectors for different implementations. The default\n JavaReflector is good when you have a class in hand, or use\n the AsmReflector for \"hands off\" reflection without forcing\n classes to load.\n\nPlatform implementers must:\n\n* Create an implementation of Reflector.\n* Create one or more implementations of TypeReference.\n* def default-reflector to be an instance that satisfies Reflector."}
{:source-url
"https://github.com/clojure/clojure/blob/4004d267e124f12b65b0d7fb6522f32a75e3c4fb/src/clj/clojure/repl.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.repl-api.html",
:name "clojure.repl",
:author
"Chris Houser, Christophe Grand, Stephen Gilardi, Michel Salim",
:doc "Utilities meant to be used interactively at the REPL"}
{:source-url
"https://github.com/clojure/clojure/blob/b5d0e84f92038449312bea4c31dcdedd499e28b8/src/clj/clojure/set.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.set-api.html",
:name "clojure.set",
:doc nil}
{:source-url
"https://github.com/clojure/clojure/blob/49b05680354271062cfcaf4b5001b35296f3a94b/src/clj/clojure/stacktrace.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.stacktrace-api.html",
:name "clojure.stacktrace",
:author "Stuart Sierra",
:doc "Print stack traces oriented towards Clojure, not Java."}
{:source-url
"https://github.com/clojure/clojure/blob/92528932261b58a8ab8a89a6b2980e5d308075a0/src/clj/clojure/string.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.string-api.html",
:name "clojure.string",
:doc nil}
{:source-url
"https://github.com/clojure/clojure/blob/787938361128c2bc21ed896dd4523651b59cb420/src/clj/clojure/template.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.template-api.html",
:name "clojure.template",
:author "Stuart Sierra",
:doc
"Macros that expand to repeated copies of a template expression."}
{:source-url
"https://github.com/clojure/clojure/blob/fa927fd942532fd1340d0e294a823e03c1ca9c89/src/clj/clojure/test.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.test-api.html",
:name "clojure.test",
:author
"Stuart Sierra, with contributions and suggestions by \n Chas Emerick, Allen Rohner, and Stuart Halloway",
:doc
"A unit testing framework.\n\nASSERTIONS\n\nThe core of the library is the \"is\" macro, which lets you make\nassertions of any arbitrary expression:\n\n(is (= 4 (+ 2 2)))\n(is (instance? Integer 256))\n(is (.startsWith \"abcde\" \"ab\"))\n\nYou can type an \"is\" expression directly at the REPL, which will\nprint a message if it fails.\n\n user> (is (= 5 (+ 2 2)))\n\n FAIL in (:1)\n expected: (= 5 (+ 2 2))\n actual: (not (= 5 4))\n false\n\nThe \"expected:\" line shows you the original expression, and the\n\"actual:\" shows you what actually happened. In this case, it\nshows that (+ 2 2) returned 4, which is not = to 5. Finally, the\n\"false\" on the last line is the value returned from the\nexpression. The \"is\" macro always returns the result of the\ninner expression.\n\nThere are two special assertions for testing exceptions. The\n\"(is (thrown? c ...))\" form tests if an exception of class c is\nthrown:\n\n(is (thrown? ArithmeticException (/ 1 0))) \n\n\"(is (thrown-with-msg? c re ...))\" does the same thing and also\ntests that the message on the exception matches the regular\nexpression re:\n\n(is (thrown-with-msg? ArithmeticException #\"Divide by zero\"\n (/ 1 0)))\n\nDOCUMENTING TESTS\n\n\"is\" takes an optional second argument, a string describing the\nassertion. This message will be included in the error report.\n\n(is (= 5 (+ 2 2)) \"Crazy arithmetic\")\n\nIn addition, you can document groups of assertions with the\n\"testing\" macro, which takes a string followed by any number of\nassertions. The string will be included in failure reports.\nCalls to \"testing\" may be nested, and all of the strings will be\njoined together with spaces in the final report, in a style\nsimilar to RSpec <http://rspec.info/>\n\n(testing \"Arithmetic\"\n (testing \"with positive integers\"\n (is (= 4 (+ 2 2)))\n (is (= 7 (+ 3 4))))\n (testing \"with negative integers\"\n (is (= -4 (+ -2 -2)))\n (is (= -1 (+ 3 -4)))))\n\nNote that, unlike RSpec, the \"testing\" macro may only be used\nINSIDE a \"deftest\" or \"with-test\" form (see below).\n\n\nDEFINING TESTS\n\nThere are two ways to define tests. The \"with-test\" macro takes\na defn or def form as its first argument, followed by any number\nof assertions. The tests will be stored as metadata on the\ndefinition.\n\n(with-test\n (defn my-function [x y]\n (+ x y))\n (is (= 4 (my-function 2 2)))\n (is (= 7 (my-function 3 4))))\n\nAs of Clojure SVN rev. 1221, this does not work with defmacro.\nSee http://code.google.com/p/clojure/issues/detail?id=51\n\nThe other way lets you define tests separately from the rest of\nyour code, even in a different namespace:\n\n(deftest addition\n (is (= 4 (+ 2 2)))\n (is (= 7 (+ 3 4))))\n\n(deftest subtraction\n (is (= 1 (- 4 3)))\n (is (= 3 (- 7 4))))\n\nThis creates functions named \"addition\" and \"subtraction\", which\ncan be called like any other function. Therefore, tests can be\ngrouped and composed, in a style similar to the test framework in\nPeter Seibel's \"Practical Common Lisp\"\n<http://www.gigamonkeys.com/book/practical-building-a-unit-test-framework.html>\n\n(deftest arithmetic\n (addition)\n (subtraction))\n\nThe names of the nested tests will be joined in a list, like\n\"(arithmetic addition)\", in failure reports. You can use nested\ntests to set up a context shared by several tests.\n\n\nRUNNING TESTS\n\nRun tests with the function \"(run-tests namespaces...)\":\n\n(run-tests 'your.namespace 'some.other.namespace)\n\nIf you don't specify any namespaces, the current namespace is\nused. To run all tests in all namespaces, use \"(run-all-tests)\".\n\nBy default, these functions will search for all tests defined in\na namespace and run them in an undefined order. However, if you\nare composing tests, as in the \"arithmetic\" example above, you\nprobably do not want the \"addition\" and \"subtraction\" tests run\nseparately. In that case, you must define a special function\nnamed \"test-ns-hook\" that runs your tests in the correct order:\n\n(defn test-ns-hook []\n (arithmetic))\n\nNote: test-ns-hook prevents execution of fixtures (see below).\n\n\nOMITTING TESTS FROM PRODUCTION CODE\n\nYou can bind the variable \"*load-tests*\" to false when loading or\ncompiling code in production. This will prevent any tests from\nbeing created by \"with-test\" or \"deftest\".\n\n\nFIXTURES\n\nFixtures allow you to run code before and after tests, to set up\nthe context in which tests should be run.\n\nA fixture is just a function that calls another function passed as\nan argument. It looks like this:\n\n(defn my-fixture [f]\n Perform setup, establish bindings, whatever.\n (f) Then call the function we were passed.\n Tear-down / clean-up code here.\n )\n\nFixtures are attached to namespaces in one of two ways. \"each\"\nfixtures are run repeatedly, once for each test function created\nwith \"deftest\" or \"with-test\". \"each\" fixtures are useful for\nestablishing a consistent before/after state for each test, like\nclearing out database tables.\n\n\"each\" fixtures can be attached to the current namespace like this:\n(use-fixtures :each fixture1 fixture2 ...)\nThe fixture1, fixture2 are just functions like the example above.\nThey can also be anonymous functions, like this:\n(use-fixtures :each (fn [f] setup... (f) cleanup...))\n\nThe other kind of fixture, a \"once\" fixture, is only run once,\naround ALL the tests in the namespace. \"once\" fixtures are useful\nfor tasks that only need to be performed once, like establishing\ndatabase connections, or for time-consuming tasks.\n\nAttach \"once\" fixtures to the current namespace like this:\n(use-fixtures :once fixture1 fixture2 ...)\n\nNote: Fixtures and test-ns-hook are mutually incompatible. If you\nare using test-ns-hook, fixture functions will *never* be run.\n\n\nSAVING TEST OUTPUT TO A FILE\n\nAll the test reporting functions write to the var *test-out*. By\ndefault, this is the same as *out*, but you can rebind it to any\nPrintWriter. For example, it could be a file opened with\nclojure.java.io/writer.\n\n\nEXTENDING TEST-IS (ADVANCED)\n\nYou can extend the behavior of the \"is\" macro by defining new\nmethods for the \"assert-expr\" multimethod. These methods are\ncalled during expansion of the \"is\" macro, so they should return\nquoted forms to be evaluated.\n\nYou can plug in your own test-reporting framework by rebinding\nthe \"report\" function: (report event)\n\nThe 'event' argument is a map. It will always have a :type key,\nwhose value will be a keyword signaling the type of event being\nreported. Standard events with :type value of :pass, :fail, and\n:error are called when an assertion passes, fails, and throws an\nexception, respectively. In that case, the event will also have\nthe following keys:\n\n :expected The form that was expected to be true\n :actual A form representing what actually occurred\n :message The string message given as an argument to 'is'\n\nThe \"testing\" strings will be a list in \"*testing-contexts*\", and\nthe vars being tested will be a list in \"*testing-vars*\".\n\nYour \"report\" function should wrap any printing calls in the\n\"with-test-out\" macro, which rebinds *out* to the current value\nof *test-out*.\n\nFor additional event types, see the examples in the code."}
{:source-url
"https://github.com/clojure/clojure/blob/c5673086d40f206135b99a37001c80a4016c3877/src/clj/clojure/walk.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.walk-api.html",
:name "clojure.walk",
:doc nil}
{:source-url
"https://github.com/clojure/clojure/blob/b9b1a094499b69a94bd47fc94c4f082d80239fa9/src/clj/clojure/xml.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.xml-api.html",
:name "clojure.xml",
:author "Rich Hickey",
:doc "XML reading/writing."}
{:source-url
"https://github.com/clojure/clojure/blob/59b65669860a1f33825775494809e5d500c19c63/src/clj/clojure/zip.clj",
:wiki-url "http://clojure.github.com/clojure/clojure.zip-api.html",
:name "clojure.zip",
:author "Rich Hickey",
:doc
"Functional hierarchical zipper, with navigation, editing,\nand enumeration. See Huet"}
{:source-url
"https://github.com/clojure/clojure/blob/96e8596cfdd29a2bb245d958683ee5fc1353b87a/src/clj/clojure/core/protocols.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.core.protocols-api.html",
:name "clojure.core.protocols",
:doc nil}
{:source-url
"https://github.com/clojure/clojure/blob/2430b7a958fea540071d7f41f37b27294bb009aa/src/clj/clojure/core/reducers.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.core.reducers-api.html",
:name "clojure.core.reducers",
:author "Rich Hickey",
:doc
"A library for reduction and parallel folding. Alpha and subject\nto change. Note that fold and its derivatives require Java 7+ or\nJava 6 + jsr166y.jar for fork/join support. See Clojure's pom.xml for the\ndependency info."}
{:source-url
"https://github.com/clojure/clojure/blob/36642c984cbf52456e45a8af0a96e4b7e7417041/src/clj/clojure/test/junit.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.test.junit-api.html",
:name "clojure.test.junit",
:author "Jason Sankey",
:doc
"clojure.test extension for JUnit-compatible XML output.\n\nJUnit (http://junit.org/) is the most popular unit-testing library\nfor Java. As such, tool support for JUnit output formats is\ncommon. By producing compatible output from tests, this tool\nsupport can be exploited.\n\nTo use, wrap any calls to clojure.test/run-tests in the\nwith-junit-output macro, like this:\n\n (use 'clojure.test)\n (use 'clojure.test.junit)\n\n (with-junit-output\n (run-tests 'my.cool.library))\n\nTo write the output to a file, rebind clojure.test/*test-out* to\nyour own PrintWriter (perhaps opened using\nclojure.java.io/writer)."}
{:source-url
"https://github.com/clojure/clojure/blob/153a2d0f000ab2f254704e4970968fee6a0329a1/src/clj/clojure/test/tap.clj",
:wiki-url
"http://clojure.github.com/clojure/clojure.test.tap-api.html",
:name "clojure.test.tap",
:author "Stuart Sierra",
:doc
"clojure.test extensions for the Test Anything Protocol (TAP)\n\nTAP is a simple text-based syntax for reporting test results. TAP\nwas originally developed for Perl, and now has implementations in\nseveral languages. For more information on TAP, see\nhttp://testanything.org/ and\nhttp://search.cpan.org/~petdance/TAP-1.0.0/TAP.pm\n\nTo use this library, wrap any calls to\nclojure.test/run-tests in the with-tap-output macro,\nlike this:\n\n (use 'clojure.test)\n (use 'clojure.test.tap)\n\n (with-tap-output\n (run-tests 'my.cool.library))"}),
:vars
({:arglists ([] [x] [x y] [x y & more]),
:name "*",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L960",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*",
:doc
"Returns the product of nums. (*) returns 1. Does not auto-promote\nlongs, will throw on overflow. See also: *'",
:var-type "function",
:line 960,
:file "src/clj/clojure/core.clj"}
{:arglists ([] [x] [x y] [x y & more]),
:name "*'",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L948",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*'",
:doc
"Returns the product of nums. (*) returns 1. Supports arbitrary precision.\nSee also: *",
:var-type "function",
:line 948,
:file "src/clj/clojure/core.clj"}
{:name "*1",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5633",
:dynamic true,
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*1",
:doc "bound in a repl thread to the most recent value printed",
:var-type "var",
:line 5633,
:file "src/clj/clojure/core.clj"}
{:name "*2",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5638",
:dynamic true,
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*2",
:doc
"bound in a repl thread to the second most recent value printed",
:var-type "var",
:line 5638,
:file "src/clj/clojure/core.clj"}
{:name "*3",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5643",
:dynamic true,
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*3",
:doc
"bound in a repl thread to the third most recent value printed",
:var-type "var",
:line 5643,
:file "src/clj/clojure/core.clj"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*agent*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"The agent currently running an action on this thread, else nil",
:name "*agent*"}
{:name "*clojure-version*",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6354",
:dynamic true,
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*clojure-version*",
:doc
"The version info for Clojure core, as a map containing :major :minor \n:incremental and :qualifier keys. Feature releases may increment \n:minor and/or :major, bugfix releases will increment :incremental. \nPossible values of :qualifier include \"GA\", \"SNAPSHOT\", \"RC-x\" \"BETA-x\"",
:var-type "var",
:line 6354,
:file "src/clj/clojure/core.clj"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*command-line-args*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"A sequence of the supplied command line arguments, or nil if\nnone were supplied",
:name "*command-line-args*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*compile-files*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc "Set to true when compiling files, false otherwise.",
:name "*compile-files*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*compile-path*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"Specifies the directory where 'compile' will write out .class\nfiles. This directory must be in the classpath for 'compile' to\nwork.\n\nDefaults to \"classes\"",
:name "*compile-path*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*compiler-options*",
:namespace "clojure.core",
:added "1.4",
:var-type "var",
:doc
"A map of keys to options.\nNote, when binding dynamically make sure to merge with previous value.\nSupported options:\n:elide-meta - a collection of metadata keys to elide during compilation.\n:disable-locals-clearing - set to true to disable clearing, useful for using a debugger\nAlpha, subject to change.",
:name "*compiler-options*"}
{:name "*data-readers*",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6793",
:dynamic true,
:added "1.4",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*data-readers*",
:doc
"Map from reader tag symbols to data reader Vars.\n\nWhen Clojure starts, it searches for files named 'data_readers.clj'\nat the root of the classpath. Each such file must contain a literal\nmap of symbols, like this:\n\n {foo/bar my.project.foo/bar\n foo/baz my.project/baz}\n\nThe first symbol in each pair is a tag that will be recognized by\nthe Clojure reader. The second symbol in the pair is the\nfully-qualified name of a Var which will be invoked by the reader to\nparse the form following the tag. For example, given the\ndata_readers.clj file above, the Clojure reader would parse this\nform:\n\n #foo/bar [1 2 3]\n\nby invoking the Var #'my.project.foo/bar on the vector [1 2 3]. The\ndata reader function is invoked on the form AFTER it has been read\nas a normal Clojure data structure by the reader.\n\nReader tags without namespace qualifiers are reserved for\nClojure. Default reader tags are defined in\nclojure.core/default-data-readers but may be overridden in\ndata_readers.clj or by rebinding this Var.",
:var-type "var",
:line 6793,
:file "src/clj/clojure/core.clj"}
{:name "*default-data-reader-fn*",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6822",
:dynamic true,
:added "1.5",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*default-data-reader-fn*",
:doc
"When no data reader is found for a tag and *default-data-reader-fn*\nis non-nil, it will be called with two arguments,\nthe tag and the value. If *default-data-reader-fn* is nil (the\ndefault), an exception will be thrown for the unknown tag.",
:var-type "var",
:line 6822,
:file "src/clj/clojure/core.clj"}
{:name "*e",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5648",
:dynamic true,
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*e",
:doc
"bound in a repl thread to the most recent exception caught by the repl",
:var-type "var",
:line 5648,
:file "src/clj/clojure/core.clj"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*err*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"A java.io.Writer object representing standard error for print operations.\n\nDefaults to System/err, wrapped in a PrintWriter",
:name "*err*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*file*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"The path of the file being evaluated, as a String.\n\nEvaluates to nil when there is no file, eg. in the REPL.",
:name "*file*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*flush-on-newline*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"When set to true, output will be flushed whenever a newline is printed.\n\nDefaults to true.",
:name "*flush-on-newline*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*in*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"A java.io.Reader object representing standard input for read operations.\n\nDefaults to System/in, wrapped in a LineNumberingPushbackReader",
:name "*in*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*ns*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"A clojure.lang.Namespace object representing the current namespace.",
:name "*ns*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*out*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"A java.io.Writer object representing standard output for print operations.\n\nDefaults to System/out, wrapped in an OutputStreamWriter",
:name "*out*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*print-dup*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"When set to logical true, objects will be printed in a way that preserves\ntheir type when read in later.\n\nDefaults to false.",
:name "*print-dup*"}
{:name "*print-length*",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj#L15",
:dynamic true,
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*print-length*",
:doc
"*print-length* controls how many items of each collection the\nprinter will print. If it is bound to logical false, there is no\nlimit. Otherwise, it must be bound to an integer indicating the maximum\nnumber of items of each collection to print. If a collection contains\nmore items, the printer will print items up to the limit followed by\n'...' to represent the remaining items. The root binding is nil\nindicating no limit.",
:var-type "var",
:line 15,
:file "src/clj/clojure/core_print.clj"}
{:name "*print-level*",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj#L26",
:dynamic true,
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*print-level*",
:doc
"*print-level* controls how many levels deep the printer will\nprint nested objects. If it is bound to logical false, there is no\nlimit. Otherwise, it must be bound to an integer indicating the maximum\nlevel to print. Each argument to print is at level 0; if an argument is a\ncollection, its items are at level 1; and so on. If an object is a\ncollection and is at a level greater than or equal to the value bound to\n*print-level*, the printer prints '#' to represent it. The root binding\nis nil indicating no limit.",
:var-type "var",
:line 26,
:file "src/clj/clojure/core_print.clj"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*print-meta*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"If set to logical true, when printing an object, its metadata will also\nbe printed in a form that can be read back by the reader.\n\nDefaults to false.",
:name "*print-meta*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*print-readably*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"When set to logical false, strings and characters will be printed with\nnon-alphanumeric characters converted to the appropriate escape sequences.\n\nDefaults to true",
:name "*print-readably*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*read-eval*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"When set to logical false, the EvalReader (#=(...)) is disabled in the \nread/load in the thread-local binding.\nExample: (binding [*read-eval* false] (read-string \"#=(eval (def x 3))\"))\n\nDefaults to true",
:name "*read-eval*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*unchecked-math*",
:namespace "clojure.core",
:added "1.3",
:var-type "var",
:doc
"While bound to true, compilations of +, -, *, inc, dec and the\ncoercions will be done without overflow checks. Default: false.",
:name "*unchecked-math*"}
{:file nil,
:raw-source-url nil,
:source-url nil,
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/*warn-on-reflection*",
:namespace "clojure.core",
:added "1.0",
:var-type "var",
:doc
"When set to true, the compiler will emit warnings when reflection is\nneeded to resolve Java method calls or field accesses.\n\nDefaults to false.",
:name "*warn-on-reflection*"}
{:arglists ([] [x] [x y] [x y & more]),
:name "+",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L936",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/+",
:doc
"Returns the sum of nums. (+) returns 0. Does not auto-promote\nlongs, will throw on overflow. See also: +'",
:var-type "function",
:line 936,
:file "src/clj/clojure/core.clj"}
{:arglists ([] [x] [x y] [x y & more]),
:name "+'",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L924",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/+'",
:doc
"Returns the sum of nums. (+) returns 0. Supports arbitrary precision.\nSee also: +",
:var-type "function",
:line 924,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "-",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L995",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/-",
:doc
"If no ys are supplied, returns the negation of x, else subtracts\nthe ys from x and returns the result. Does not auto-promote\nlongs, will throw on overflow. See also: -'",
:var-type "function",
:line 995,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "-'",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L983",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/-'",
:doc
"If no ys are supplied, returns the negation of x, else subtracts\nthe ys from x and returns the result. Supports arbitrary precision.\nSee also: -",
:var-type "function",
:line 983,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x form] [x form & more]),
:name "->",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1545",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/->",
:doc
"Threads the expr through the forms. Inserts x as the\nsecond item in the first form, making a list of it if it is not a\nlist already. If there are more forms, inserts the first form as the\nsecond item in second form, etc.",
:var-type "macro",
:line 1545,
:file "src/clj/clojure/core.clj"}
{:arglists ([x form] [x form & more]),
:name "->>",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1557",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/->>",
:doc
"Threads the expr through the forms. Inserts x as the\nlast item in the first form, making a list of it if it is not a\nlist already. If there are more forms, inserts the first form as the\nlast item in second form, etc.",
:var-type "macro",
:line 1557,
:file "src/clj/clojure/core.clj"}
{:arglists ([am arr off end]),
:name "->ArrayChunk",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj#L34",
:raw-source-url
"https://github.com/clojure/clojure/raw/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/->ArrayChunk",
:doc
"Positional factory function for class clojure.core.ArrayChunk.",
:var-type "function",
:line 34,
:file "src/clj/clojure/gvec.clj"}
{:arglists ([am cnt shift root tail _meta]),
:name "->Vec",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj#L122",
:raw-source-url
"https://github.com/clojure/clojure/raw/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/->Vec",
:doc "Positional factory function for class clojure.core.Vec.",
:var-type "function",
:line 122,
:file "src/clj/clojure/gvec.clj"}
{:arglists ([edit arr]),
:name "->VecNode",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj#L15",
:raw-source-url
"https://github.com/clojure/clojure/raw/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/->VecNode",
:doc "Positional factory function for class clojure.core.VecNode.",
:var-type "function",
:line 15,
:file "src/clj/clojure/gvec.clj"}
{:arglists ([am vec anode i offset]),
:name "->VecSeq",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj#L54",
:raw-source-url
"https://github.com/clojure/clojure/raw/0245f15c9c7bd2d043f0f6e59fff0a692d7466b1/src/clj/clojure/gvec.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/->VecSeq",
:doc "Positional factory function for class clojure.core.VecSeq.",
:var-type "function",
:line 54,
:file "src/clj/clojure/gvec.clj"}
{:arglists ([x form] [x form & more]),
:name "..",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1527",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/..",
:doc
"form => fieldName-symbol or (instanceMethodName-symbol args*)\n\nExpands into a member access (.) of the first member on the first\nargument, followed by the next member on the result, etc. For\ninstance:\n\n(.. System (getProperties) (get \"os.name\"))\n\nexpands to:\n\n(. (. System (getProperties)) (get \"os.name\"))\n\nbut is easier to write, read, and understand.",
:var-type "macro",
:line 1527,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "/",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L972",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core//",
:doc
"If no denominators are supplied, returns 1/numerator,\nelse returns numerator divided by all of the denominators.",
:var-type "function",
:line 972,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "<",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L852",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/<",
:doc
"Returns non-nil if nums are in monotonically increasing order,\notherwise false.",
:var-type "function",
:line 852,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "<=",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1007",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/<=",
:doc
"Returns non-nil if nums are in monotonically non-decreasing order,\notherwise false.",
:var-type "function",
:line 1007,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "=",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L735",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/=",
:doc
"Equality. Returns true if x equals y, false if not. Same as\nJava x.equals(y) except it also works for nil, and compares\nnumbers and collections in a type-independent manner. Clojure's immutable data\nstructures define equals() (and thus =) as a value, not an identity,\ncomparison.",
:var-type "function",
:line 735,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "==",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1052",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/==",
:doc
"Returns non-nil if nums all have the equivalent\nvalue (type-independent), otherwise false",
:var-type "function",
:line 1052,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name ">",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1022",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/>",
:doc
"Returns non-nil if nums are in monotonically decreasing order,\notherwise false.",
:var-type "function",
:line 1022,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name ">=",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1037",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/>=",
:doc
"Returns non-nil if nums are in monotonically non-increasing order,\notherwise false.",
:var-type "function",
:line 1037,
:file "src/clj/clojure/core.clj"}
{:arglists ([s key]),
:name "accessor",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3657",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/accessor",
:doc
"Returns a fn that, given an instance of a structmap with the basis,\nreturns the value at the key. The key must be in the basis. The\nreturned function should be (slightly) more efficient than using\nget, but such use of accessors should be limited to known\nperformance-critical areas.",
:var-type "function",
:line 3657,
:file "src/clj/clojure/core.clj"}
{:arglists ([array]),
:name "aclone",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3491",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aclone",
:doc
"Returns a clone of the Java array. Works on arrays of known\ntypes.",
:var-type "function",
:line 3491,
:file "src/clj/clojure/core.clj"}
{:arglists ([url]),
:name "add-classpath",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4622",
:deprecated "1.1",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/add-classpath",
:doc
"DEPRECATED \n\nAdds the url (String or URL object) to the classpath per\nURLClassLoader.addURL",
:var-type "function",
:line 4622,
:file "src/clj/clojure/core.clj"}
{:arglists ([reference key fn]),
:name "add-watch",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1950",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/add-watch",
:doc
"Alpha - subject to change.\nAdds a watch function to an agent/atom/var/ref reference. The watch\nfn must be a fn of 4 args: a key, the reference, its old-state, its\nnew-state. Whenever the reference's state might have been changed,\nany registered watches will have their functions called. The watch fn\nwill be called synchronously, on the agent's thread if an agent,\nbefore any pending sends if agent or ref. Note that an atom's or\nref's state may have changed again prior to the fn call, so use\nold/new-state rather than derefing the reference. Note also that watch\nfns may be called from multiple threads simultaneously. Var watchers\nare triggered only by root binding changes, not thread-local\nset!s. Keys must be unique per reference, and can be used to remove\nthe watch with remove-watch, but are otherwise considered opaque by\nthe watch mechanism.",
:var-type "function",
:line 1950,
:file "src/clj/clojure/core.clj"}
{:arglists ([state & options]),
:name "agent",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1860",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/agent",
:doc
"Creates and returns an agent with an initial value of state and\nzero or more options (in any order):\n\n:meta metadata-map\n\n:validator validate-fn\n\n:error-handler handler-fn\n\n:error-mode mode-keyword\n\nIf metadata-map is supplied, it will become the metadata on the\nagent. validate-fn must be nil or a side-effect-free fn of one\nargument, which will be passed the intended new state on any state\nchange. If the new state is unacceptable, the validate-fn should\nreturn false or throw an exception. handler-fn is called if an\naction throws an exception or if validate-fn rejects a new state --\nsee set-error-handler! for details. The mode-keyword may be either\n:continue (the default if an error-handler is given) or :fail (the\ndefault if no error-handler is given) -- see set-error-mode! for\ndetails.",
:var-type "function",
:line 1860,
:file "src/clj/clojure/core.clj"}
{:arglists ([a]),
:name "agent-error",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1977",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/agent-error",
:doc
"Returns the exception thrown during an asynchronous action of the\nagent if the agent is failed. Returns nil if the agent is not\nfailed.",
:var-type "function",
:line 1977,
:file "src/clj/clojure/core.clj"}
{:arglists ([a]),
:name "agent-errors",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2044",
:deprecated "1.2",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/agent-errors",
:doc
"DEPRECATED: Use 'agent-error' instead.\nReturns a sequence of the exceptions thrown during asynchronous\nactions of the agent.",
:var-type "function",
:line 2044,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx] [array idx & idxs]),
:name "aget",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3498",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aget",
:doc
"Returns the value at the index/indices. Works on Java arrays of all\ntypes.",
:var-type "function",
:line 3498,
:file "src/clj/clojure/core.clj"}
{:arglists ([array]),
:name "alength",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3484",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/alength",
:doc
"Returns the length of the Java array. Works on arrays of all\ntypes.",
:var-type "function",
:line 3484,
:file "src/clj/clojure/core.clj"}
{:arglists ([alias namespace-sym]),
:name "alias",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3839",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/alias",
:doc
"Add an alias in the current namespace to another\nnamespace. Arguments are two symbols: the alias to be used, and\nthe symbolic name of the target namespace. Use :as in the ns macro in preference\nto calling this directly.",
:var-type "function",
:line 3839,
:file "src/clj/clojure/core.clj"}
{:arglists ([]),
:name "all-ns",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3722",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/all-ns",
:doc "Returns a sequence of all namespaces.",
:var-type "function",
:line 3722,
:file "src/clj/clojure/core.clj"}
{:arglists ([ref fun & args]),
:name "alter",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2221",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/alter",
:doc
"Must be called in a transaction. Sets the in-transaction-value of\nref to:\n\n(apply fun in-transaction-value-of-ref args)\n\nand returns the in-transaction-value of ref.",
:var-type "function",
:line 2221,
:file "src/clj/clojure/core.clj"}
{:arglists ([iref f & args]),
:name "alter-meta!",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2184",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/alter-meta!",
:doc
"Atomically sets the metadata for a namespace/var/ref/agent/atom to be:\n\n(apply f its-current-meta args)\n\nf must be free of side-effects",
:var-type "function",
:line 2184,
:file "src/clj/clojure/core.clj"}
{:arglists ([v f & args]),
:name "alter-var-root",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4918",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/alter-var-root",
:doc
"Atomically alters the root binding of var v by applying f to its\ncurrent value plus any args",
:var-type "function",
:line 4918,
:file "src/clj/clojure/core.clj"}
{:arglists ([a idx ret expr]),
:name "amap",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4670",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/amap",
:doc
"Maps an expression across an array a, using an index named idx, and\nreturn value named ret, initialized to a clone of a, then setting \neach element of ret to the evaluation of expr, returning the new \narray ret.",
:var-type "macro",
:line 4670,
:file "src/clj/clojure/core.clj"}
{:arglists ([tag] [h tag]),
:name "ancestors",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5011",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/ancestors",
:doc
"Returns the immediate and indirect parents of tag, either via a Java type\ninheritance relationship or a relationship established via derive. h\nmust be a hierarchy obtained from make-hierarchy, if not supplied\ndefaults to the global hierarchy",
:var-type "function",
:line 5011,
:file "src/clj/clojure/core.clj"}
{:arglists ([] [x] [x & next]),
:name "and",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L794",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/and",
:doc
"Evaluates exprs one at a time, from left to right. If a form\nreturns logical false (nil or false), and returns that value and\ndoesn't evaluate any of the other expressions, otherwise it returns\nthe value of the last expr. (and) returns true.",
:var-type "macro",
:line 794,
:file "src/clj/clojure/core.clj"}
{:arglists
([f args]
[f x args]
[f x y args]
[f x y z args]
[f a b c d & args]),
:name "apply",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L612",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/apply",
:doc
"Applies fn f to the argument list formed by prepending intervening arguments to args.",
:var-type "function",
:line 612,
:file "src/clj/clojure/core.clj"}
{:arglists ([a idx ret init expr]),
:name "areduce",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4686",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/areduce",
:doc
"Reduces an expression across an array a, using an index named idx,\nand return value named ret, initialized to init, setting ret to the \nevaluation of expr at each step, returning ret.",
:var-type "macro",
:line 4686,
:file "src/clj/clojure/core.clj"}
{:arglists ([] [& keyvals]),
:name "array-map",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3940",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/array-map",
:doc
"Constructs an array-map. If any keys are equal, they are handled as\nif by repeated uses of assoc.",
:var-type "function",
:line 3940,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3509",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset",
:doc
"Sets the value at the index/indices. Works on Java arrays of\nreference types. Returns val.",
:var-type "function",
:line 3509,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-boolean",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3542",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-boolean",
:doc
"Sets the value at the index/indices. Works on arrays of boolean. Returns val.",
:var-type "function",
:line 3542,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-byte",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3562",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-byte",
:doc
"Sets the value at the index/indices. Works on arrays of byte. Returns val.",
:var-type "function",
:line 3562,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-char",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3567",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-char",
:doc
"Sets the value at the index/indices. Works on arrays of char. Returns val.",
:var-type "function",
:line 3567,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-double",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3552",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-double",
:doc
"Sets the value at the index/indices. Works on arrays of double. Returns val.",
:var-type "function",
:line 3552,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-float",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3547",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-float",
:doc
"Sets the value at the index/indices. Works on arrays of float. Returns val.",
:var-type "function",
:line 3547,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-int",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3532",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-int",
:doc
"Sets the value at the index/indices. Works on arrays of int. Returns val.",
:var-type "function",
:line 3532,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-long",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3537",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-long",
:doc
"Sets the value at the index/indices. Works on arrays of long. Returns val.",
:var-type "function",
:line 3537,
:file "src/clj/clojure/core.clj"}
{:arglists ([array idx val] [array idx idx2 & idxv]),
:name "aset-short",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3557",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/aset-short",
:doc
"Sets the value at the index/indices. Works on arrays of short. Returns val.",
:var-type "function",
:line 3557,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x message]),
:name "assert",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4323",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/assert",
:doc
"Evaluates expr and throws an exception if it does not evaluate to\nlogical true.",
:var-type "macro",
:line 4323,
:file "src/clj/clojure/core.clj"}
{:arglists ([map key val] [map key val & kvs]),
:name "assoc",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L177",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/assoc",
:doc
"assoc[iate]. When applied to a map, returns a new map of the\nsame (hashed/sorted) type, that contains the mapping of key(s) to\nval(s). When applied to a vector, returns a new vector that\ncontains val at index. Note - index must be <= (count vector).",
:var-type "function",
:line 177,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll key val] [coll key val & kvs]),
:name "assoc!",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2994",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/assoc!",
:doc
"Alpha - subject to change.\nWhen applied to a transient map, adds mapping of key(s) to\nval(s). When applied to a transient vector, sets the val at index.\nNote - index must be <= (count vector). Returns coll.",
:var-type "function",
:line 2994,
:file "src/clj/clojure/core.clj"}
{:arglists ([m [k & ks] v]),
:name "assoc-in",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5539",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/assoc-in",
:doc
"Associates a value in a nested associative structure, where ks is a\nsequence of keys and v is the new value and returns a new nested structure.\nIf any levels do not exist, hash-maps will be created.",
:var-type "function",
:line 5539,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "associative?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5603",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/associative?",
:doc "Returns true if coll implements Associative",
:var-type "function",
:line 5603,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x & options]),
:name "atom",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2122",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/atom",
:doc
"Creates and returns an Atom with an initial value of x and zero or\nmore options (in any order):\n\n:meta metadata-map\n\n:validator validate-fn\n\nIf metadata-map is supplied, it will become the metadata on the\natom. validate-fn must be nil or a side-effect-free fn of one\nargument, which will be passed the intended new state on any state\nchange. If the new state is unacceptable, the validate-fn should\nreturn false or throw an exception.",
:var-type "function",
:line 2122,
:file "src/clj/clojure/core.clj"}
{:arglists ([& agents]),
:name "await",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2899",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/await",
:doc
"Blocks the current thread (indefinitely!) until all actions\ndispatched thus far, from this thread or agent, to the agent(s) have\noccurred. Will block on failed agents. Will never return if\na failed agent is restarted with :clear-actions true.",
:var-type "function",
:line 2899,
:file "src/clj/clojure/core.clj"}
{:arglists ([timeout-ms & agents]),
:name "await-for",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2921",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/await-for",
:doc
"Blocks the current thread until all actions dispatched thus\nfar (from this thread or agent) to the agents have occurred, or the\ntimeout (in milliseconds) has elapsed. Returns logical false if\nreturning due to timeout, logical true otherwise.",
:var-type "function",
:line 2921,
:file "src/clj/clojure/core.clj"}
{:arglists ([c]),
:name "bases",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4956",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bases",
:doc
"Returns the immediate superclass and direct interfaces of c, if any",
:var-type "function",
:line 4956,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "bean",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/ed9b784356a1595fa01b1fe0a22ae4e4a76f392f/src/clj/clojure/core_proxy.clj#L372",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/ed9b784356a1595fa01b1fe0a22ae4e4a76f392f/src/clj/clojure/core_proxy.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bean",
:doc
"Takes a Java object and returns a read-only implementation of the\nmap abstraction based upon its JavaBean properties.",
:var-type "function",
:line 372,
:file "src/clj/clojure/core_proxy.clj"}
{:arglists ([x]),
:name "bigdec",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3282",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bigdec",
:doc "Coerce to BigDecimal",
:var-type "function",
:line 3282,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "bigint",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3256",
:added "1.3",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bigint",
:doc "Coerce to BigInt",
:var-type "function",
:line 3256,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "biginteger",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3269",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/biginteger",
:doc "Coerce to BigInteger",
:var-type "function",
:line 3269,
:file "src/clj/clojure/core.clj"}
{:arglists ([bindings & body]),
:name "binding",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1753",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/binding",
:doc
"binding => var-symbol init-expr\n\nCreates new bindings for the (already-existing) vars, with the\nsupplied initial values, executes the exprs in an implicit do, then\nre-establishes the bindings that existed before. The new bindings\nare made in parallel (unlike let); all init-exprs are evaluated\nbefore the vars are bound to their new values.",
:var-type "macro",
:line 1753,
:file "src/clj/clojure/core.clj"}
{:arglists ([x y] [x y & more]),
:name "bit-and",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1245",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-and",
:doc "Bitwise and",
:var-type "function",
:line 1245,
:file "src/clj/clojure/core.clj"}
{:arglists ([x y] [x y & more]),
:name "bit-and-not",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1272",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-and-not",
:doc "Bitwise and with complement",
:var-type "function",
:line 1272,
:file "src/clj/clojure/core.clj"}
{:arglists ([x n]),
:name "bit-clear",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1283",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-clear",
:doc "Clear bit at index n",
:var-type "function",
:line 1283,
:file "src/clj/clojure/core.clj"}
{:arglists ([x n]),
:name "bit-flip",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1295",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-flip",
:doc "Flip bit at index n",
:var-type "function",
:line 1295,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "bit-not",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1238",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-not",
:doc "Bitwise complement",
:var-type "function",
:line 1238,
:file "src/clj/clojure/core.clj"}
{:arglists ([x y] [x y & more]),
:name "bit-or",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1254",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-or",
:doc "Bitwise or",
:var-type "function",
:line 1254,
:file "src/clj/clojure/core.clj"}
{:arglists ([x n]),
:name "bit-set",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1289",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-set",
:doc "Set bit at index n",
:var-type "function",
:line 1289,
:file "src/clj/clojure/core.clj"}
{:arglists ([x n]),
:name "bit-shift-left",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1308",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-shift-left",
:doc "Bitwise shift left",
:var-type "function",
:line 1308,
:file "src/clj/clojure/core.clj"}
{:arglists ([x n]),
:name "bit-shift-right",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1314",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-shift-right",
:doc "Bitwise shift right",
:var-type "function",
:line 1314,
:file "src/clj/clojure/core.clj"}
{:arglists ([x n]),
:name "bit-test",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1301",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-test",
:doc "Test bit at index n",
:var-type "function",
:line 1301,
:file "src/clj/clojure/core.clj"}
{:arglists ([x y] [x y & more]),
:name "bit-xor",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1263",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bit-xor",
:doc "Bitwise exclusive or",
:var-type "function",
:line 1263,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "boolean",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3146",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/boolean",
:doc "Coerce to boolean",
:var-type "function",
:line 3146,
:file "src/clj/clojure/core.clj"}
{:arglists ([size-or-seq] [size init-val-or-seq]),
:name "boolean-array",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4706",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/boolean-array",
:doc "Creates an array of booleans",
:var-type "function",
:line 4706,
:file "src/clj/clojure/core.clj"}
{:arglists ([xs]),
:name "booleans",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4769",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/booleans",
:doc "Casts to boolean[]",
:var-type "function",
:line 4769,
:file "src/clj/clojure/core.clj"}
{:arglists ([& fntail]),
:name "bound-fn",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1812",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bound-fn",
:doc
"Returns a function defined by the given fntail, which will install the\nsame bindings in effect as in the thread at the time bound-fn was called.\nThis may be used to define a helper function which runs on a different\nthread, but needs the same bindings in place.",
:var-type "macro",
:line 1812,
:file "src/clj/clojure/core.clj"}
{:arglists ([f]),
:name "bound-fn*",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1800",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bound-fn*",
:doc
"Returns a function, which will install the same bindings in effect as in\nthe thread at the time bound-fn* was called and then call f with any given\narguments. This may be used to define a helper function which runs on a\ndifferent thread, but needs the same bindings in place.",
:var-type "function",
:line 1800,
:file "src/clj/clojure/core.clj"}
{:arglists ([& vars]),
:name "bound?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4925",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bound?",
:doc
"Returns true if all of the vars provided as arguments have any bound value, root or thread-local.\nImplies that deref'ing the provided vars will succeed. Returns true if no vars are provided.",
:var-type "function",
:line 4925,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "butlast",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L255",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/butlast",
:doc
"Return a seq of all but the last item in coll, in linear time",
:var-type "function",
:line 255,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "byte",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3134",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/byte",
:doc "Coerce to byte",
:var-type "function",
:line 3134,
:file "src/clj/clojure/core.clj"}
{:arglists ([size-or-seq] [size init-val-or-seq]),
:name "byte-array",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4714",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/byte-array",
:doc "Creates an array of bytes",
:var-type "function",
:line 4714,
:file "src/clj/clojure/core.clj"}
{:arglists ([xs]),
:name "bytes",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4774",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/bytes",
:doc "Casts to bytes[]",
:var-type "function",
:line 4774,
:file "src/clj/clojure/core.clj"}
{:arglists ([e & clauses]),
:name "case",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6031",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/case",
:doc
"Takes an expression, and a set of clauses.\n\nEach clause can take the form of either:\n\ntest-constant result-expr\n\n(test-constant1 ... test-constantN) result-expr\n\nThe test-constants are not evaluated. They must be compile-time\nliterals, and need not be quoted. If the expression is equal to a\ntest-constant, the corresponding result-expr is returned. A single\ndefault expression can follow the clauses, and its value will be\nreturned if no clause matches. If no default expression is provided\nand no clause matches, an IllegalArgumentException is thrown.\n\nUnlike cond and condp, case does a constant-time dispatch, the\nclauses are not considered sequentially. All manner of constant\nexpressions are acceptable in case, including numbers, strings,\nsymbols, keywords, and (Clojure) composites thereof. Note that since\nlists are used to group multiple constants that map to the same\nexpression, a vector can be used to match a list if needed. The\ntest-constants need not be all of the same type.",
:var-type "macro",
:line 6031,
:file "src/clj/clojure/core.clj"}
{:arglists ([c x]),
:name "cast",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L320",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/cast",
:doc "Throws a ClassCastException if x is not a c, else returns x.",
:var-type "function",
:line 320,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "char",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3140",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/char",
:doc "Coerce to char",
:var-type "function",
:line 3140,
:file "src/clj/clojure/core.clj"}
{:arglists ([size-or-seq] [size init-val-or-seq]),
:name "char-array",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4722",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/char-array",
:doc "Creates an array of chars",
:var-type "function",
:line 4722,
:file "src/clj/clojure/core.clj"}
{:name "char-escape-string",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj#L167",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/char-escape-string",
:doc "Returns escape string for char or nil if none",
:var-type "var",
:line 167,
:file "src/clj/clojure/core_print.clj"}
{:name "char-name-string",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj#L281",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/92b4fc76e59e68d3bdae4ebd5b8deec915cb7ab5/src/clj/clojure/core_print.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/char-name-string",
:doc "Returns name string for char or nil if none",
:var-type "var",
:line 281,
:file "src/clj/clojure/core_print.clj"}
{:arglists ([x]),
:name "char?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L149",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/char?",
:doc "Return true if x is a Character",
:var-type "function",
:line 149,
:file "src/clj/clojure/core.clj"}
{:arglists ([xs]),
:name "chars",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4779",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/chars",
:doc "Casts to chars[]",
:var-type "function",
:line 4779,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "class",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3090",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/class",
:doc "Returns the Class of x",
:var-type "function",
:line 3090,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "class?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4856",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/class?",
:doc "Returns true if x is an instance of Class",
:var-type "function",
:line 4856,
:file "src/clj/clojure/core.clj"}
{:arglists ([a]),
:name "clear-agent-errors",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2054",
:deprecated "1.2",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/clear-agent-errors",
:doc
"DEPRECATED: Use 'restart-agent' instead.\nClears any exceptions thrown during asynchronous actions of the\nagent, allowing subsequent actions to occur.",
:var-type "function",
:line 2054,
:file "src/clj/clojure/core.clj"}
{:arglists ([]),
:name "clojure-version",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6366",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/clojure-version",
:doc "Returns clojure version as a printable string.",
:var-type "function",
:line 6366,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "coll?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5571",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/coll?",
:doc "Returns true if x implements IPersistentCollection",
:var-type "function",
:line 5571,
:file "src/clj/clojure/core.clj"}
{:arglists ([& body]),
:name "comment",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4242",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/comment",
:doc "Ignores body, yields nil",
:var-type "macro",
:line 4242,
:file "src/clj/clojure/core.clj"}
{:arglists ([ref fun & args]),
:name "commute",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2200",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/commute",
:doc
"Must be called in a transaction. Sets the in-transaction-value of\nref to:\n\n(apply fun in-transaction-value-of-ref args)\n\nand returns the in-transaction-value of ref.\n\nAt the commit point of the transaction, sets the value of ref to be:\n\n(apply fun most-recently-committed-value-of-ref args)\n\nThus fun should be commutative, or, failing that, you must accept\nlast-one-in-wins behavior. commute allows for more concurrency than\nref-set.",
:var-type "function",
:line 2200,
:file "src/clj/clojure/core.clj"}
{:arglists ([] [f] [f g] [f g h] [f1 f2 f3 & fs]),
:name "comp",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2306",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/comp",
:doc
"Takes a set of functions and returns a fn that is the composition\nof those fns. The returned fn takes a variable number of args,\napplies the rightmost of fns to the args, the next\nfn (right-to-left) to the result, etc.",
:var-type "function",
:line 2306,
:file "src/clj/clojure/core.clj"}
{:arglists ([pred]),
:name "comparator",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2721",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/comparator",
:doc
"Returns an implementation of java.util.Comparator based upon pred.",
:var-type "function",
:line 2721,
:file "src/clj/clojure/core.clj"}
{:arglists ([x y]),
:name "compare",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L783",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/compare",
:doc
"Comparator. Returns a negative number, zero, or a positive number\nwhen x is logically 'less than', 'equal to', or 'greater than'\ny. Same as Java x.compareTo(y) except it also works for nil, and\ncompares numbers and collections in a type-independent manner. x\nmust implement Comparable",
:var-type "function",
:line 783,
:file "src/clj/clojure/core.clj"}
{:arglists ([atom oldval newval]),
:name "compare-and-set!",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2152",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/compare-and-set!",
:doc
"Atomically sets the value of atom to newval if and only if the\ncurrent value of the atom is identical to oldval. Returns true if\nset happened, else false",
:var-type "function",
:line 2152,
:file "src/clj/clojure/core.clj"}
{:arglists ([lib]),
:name "compile",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5506",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/compile",
:doc
"Compiles the namespace named by the symbol lib into a set of\nclassfiles. The source for the lib must be in a proper\nclasspath-relative directory. The output files will go into the\ndirectory specified by *compile-path*, and that directory too must\nbe in the classpath.",
:var-type "function",
:line 5506,
:file "src/clj/clojure/core.clj"}
{:arglists ([f]),
:name "complement",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1349",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/complement",
:doc
"Takes a fn f and returns a fn that takes the same arguments as f,\nhas the same effects, if any, and returns the opposite truth value.",
:var-type "function",
:line 1349,
:file "src/clj/clojure/core.clj"}
{:arglists ([] [x] [x y] [x y & zs]),
:name "concat",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L670",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/concat",
:doc
"Returns a lazy seq representing the concatenation of the elements in the supplied colls.",
:var-type "function",
:line 670,
:file "src/clj/clojure/core.clj"}
{:arglists ([& clauses]),
:name "cond",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L551",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/cond",
:doc
"Takes a set of test/expr pairs. It evaluates each test one at a\ntime. If a test returns logical true, cond evaluates and returns\nthe value of the corresponding expr and doesn't evaluate any of the\nother tests or exprs. (cond) returns nil.",
:var-type "macro",
:line 551,
:file "src/clj/clojure/core.clj"}
{:arglists ([pred expr & clauses]),
:name "condp",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5713",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/condp",
:doc
"Takes a binary predicate, an expression, and a set of clauses.\nEach clause can take the form of either:\n\ntest-expr result-expr\n\ntest-expr :>> result-fn\n\nNote :>> is an ordinary keyword.\n\nFor each clause, (pred test-expr expr) is evaluated. If it returns\nlogical true, the clause is a match. If a binary clause matches, the\nresult-expr is returned, if a ternary clause matches, its result-fn,\nwhich must be a unary function, is called with the result of the\npredicate as its argument, the result of that call being the return\nvalue of condp. A single default expression can follow the clauses,\nand its value will be returned if no clause matches. If no default\nexpression is provided and no clause matches, an\nIllegalArgumentException is thrown.",
:var-type "macro",
:line 5713,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll x] [coll x & xs]),
:name "conj",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L75",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/conj",
:doc
"conj[oin]. Returns a new collection with the xs\n'added'. (conj nil item) returns (item). The 'addition' may\nhappen at different 'places' depending on the concrete type.",
:var-type "function",
:line 75,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll x]),
:name "conj!",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2985",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/conj!",
:doc
"Alpha - subject to change.\nAdds x to the transient collection, and return coll. The 'addition'\nmay happen at different 'places' depending on the concrete type.",
:var-type "function",
:line 2985,
:file "src/clj/clojure/core.clj"}
{:arglists ([x seq]),
:name "cons",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L22",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/cons",
:doc
"Returns a new seq where x is the first element and seq is\nthe rest.",
:var-type "function",
:line 22,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "constantly",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1361",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/constantly",
:doc
"Returns a function that takes any number of arguments and returns x.",
:var-type "function",
:line 1361,
:file "src/clj/clojure/core.clj"}
{:arglists ([c & ctor-args]),
:name "construct-proxy",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/ed9b784356a1595fa01b1fe0a22ae4e4a76f392f/src/clj/clojure/core_proxy.clj#L264",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/ed9b784356a1595fa01b1fe0a22ae4e4a76f392f/src/clj/clojure/core_proxy.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/construct-proxy",
:doc
"Takes a proxy class and any arguments for its superclass ctor and\ncreates and returns an instance of the proxy.",
:var-type "function",
:line 264,
:file "src/clj/clojure/core_proxy.clj"}
{:arglists ([coll key]),
:name "contains?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1394",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/contains?",
:doc
"Returns true if key is present in the given collection, otherwise\nreturns false. Note that for numerically indexed collections like\nvectors and Java arrays, this tests if the numeric key is within the\nrange of indexes. 'contains?' operates constant or logarithmic time;\nit will not perform a linear search for a value. See also 'some'.",
:var-type "function",
:line 1394,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "count",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L826",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/count",
:doc
"Returns the number of items in the collection. (count nil) returns\n0. Also works on strings, arrays, and Java Collections and Maps",
:var-type "function",
:line 826,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "counted?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5621",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/counted?",
:doc "Returns true if coll implements count in constant time",
:var-type "function",
:line 5621,
:file "src/clj/clojure/core.clj"}
{:arglists ([sym]),
:name "create-ns",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3707",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/create-ns",
:doc
"Create a new namespace named by the symbol if one doesn't already\nexist, returns it or the already-existing namespace of the same\nname.",
:var-type "function",
:line 3707,
:file "src/clj/clojure/core.clj"}
{:arglists ([& keys]),
:name "create-struct",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3624",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/create-struct",
:doc "Returns a structure basis object.",
:var-type "function",
:line 3624,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "cycle",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2598",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/cycle",
:doc
"Returns a lazy (infinite!) sequence of repetitions of the items in coll.",
:var-type "function",
:line 2598,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "dec",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1094",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/dec",
:doc
"Returns a number one less than num. Does not auto-promote\nlongs, will throw on overflow. See also: dec'",
:var-type "function",
:line 1094,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "dec'",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1087",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/dec'",
:doc
"Returns a number one less than num. Supports arbitrary precision.\nSee also: dec",
:var-type "function",
:line 1087,
:file "src/clj/clojure/core.clj"}
{:arglists ([n]),
:name "decimal?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3235",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/decimal?",
:doc "Returns true if n is a BigDecimal",
:var-type "function",
:line 3235,
:file "src/clj/clojure/core.clj"}
{:arglists ([& names]),
:name "declare",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2707",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/declare",
:doc
"defs the supplied var names with no bindings, useful for making forward declarations.",
:var-type "macro",
:line 2707,
:file "src/clj/clojure/core.clj"}
{:name "default-data-readers",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6787",
:added "1.4",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/default-data-readers",
:doc
"Default map of data reader functions provided by Clojure. May be\noverridden by binding *data-readers*.",
:var-type "var",
:line 6787,
:file "src/clj/clojure/core.clj"}
{:arglists ([name & decl]),
:name "definline",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4650",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/definline",
:doc
"Experimental - like defmacro, except defines a named function whose\nbody is the expansion, calls to which may be expanded inline as if\nit were a macro. Cannot be used with variadic (&) args.",
:var-type "macro",
:line 4650,
:file "src/clj/clojure/core.clj"}
{:arglists ([name & sigs]),
:name "definterface",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj#L39",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/definterface",
:doc
"Creates a new Java interface with the given name and method sigs.\nThe method return types and parameter types may be specified with type hints,\ndefaulting to Object if omitted.\n\n(definterface MyInterface\n (^int method1 [x])\n (^Bar method2 [^Baz b ^Quux q]))",
:var-type "macro",
:line 39,
:file "src/clj/clojure/core_deftype.clj"}
{:arglists
([name doc-string? attr-map? [params*] body]
[name doc-string? attr-map? ([params*] body) + attr-map?]),
:name "defmacro",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L422",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defmacro",
:doc
"Like defn, but the resulting function name is declared as a\nmacro and will be used as a macro by the compiler when it is\ncalled.",
:var-type "macro",
:line 422,
:file "src/clj/clojure/core.clj"}
{:arglists ([multifn dispatch-val & fn-tail]),
:name "defmethod",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1626",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defmethod",
:doc
"Creates and installs a new method of multimethod associated with dispatch-value. ",
:var-type "macro",
:line 1626,
:file "src/clj/clojure/core.clj"}
{:arglists ([name docstring? attr-map? dispatch-fn & options]),
:name "defmulti",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1584",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defmulti",
:doc
"Creates a new multimethod with the associated dispatch function.\nThe docstring and attribute-map are optional.\n\nOptions are key-value pairs and may be one of:\n :default the default dispatch value, defaults to :default\n :hierarchy the isa? hierarchy to use for dispatching\n defaults to the global hierarchy",
:var-type "macro",
:line 1584,
:file "src/clj/clojure/core.clj"}
{:arglists
([name doc-string? attr-map? [params*] prepost-map? body]
[name
doc-string?
attr-map?
([params*] prepost-map? body)
+
attr-map?]),
:name "defn",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L266",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defn",
:doc
"Same as (def name (fn [params* ] exprs*)) or (def\nname (fn ([params* ] exprs*)+)) with any doc-string or attrs added\nto the var metadata. prepost-map defines a map with optional keys\n:pre and :post that contain collections of pre or post conditions.",
:var-type "macro",
:line 266,
:file "src/clj/clojure/core.clj"}
{:arglists ([name & decls]),
:name "defn-",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4432",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defn-",
:doc "same as defn, yielding non-public def",
:var-type "macro",
:line 4432,
:file "src/clj/clojure/core.clj"}
{:arglists ([name expr]),
:name "defonce",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5234",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defonce",
:doc
"defs name to have the root value of the expr iff the named var has no root value,\nelse expr is unevaluated",
:var-type "macro",
:line 5234,
:file "src/clj/clojure/core.clj"}
{:arglists ([name & opts+sigs]),
:name "defprotocol",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj#L671",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defprotocol",
:doc
"A protocol is a named set of named methods and their signatures:\n(defprotocol AProtocolName\n\n ;optional doc string\n \"A doc string for AProtocol abstraction\"\n\n;method signatures\n (bar [this a b] \"bar docs\")\n (baz [this a] [this a b] [this a b c] \"baz docs\"))\n\nNo implementations are provided. Docs can be specified for the\nprotocol overall and for each method. The above yields a set of\npolymorphic functions and a protocol object. All are\nnamespace-qualified by the ns enclosing the definition The resulting\nfunctions dispatch on the type of their first argument, which is\nrequired and corresponds to the implicit target object ('this' in \nJava parlance). defprotocol is dynamic, has no special compile-time \neffect, and defines no new types or classes. Implementations of \nthe protocol methods can be provided using extend.\n\ndefprotocol will automatically generate a corresponding interface,\nwith the same name as the protocol, i.e. given a protocol:\nmy.ns/Protocol, an interface: my.ns.Protocol. The interface will\nhave methods corresponding to the protocol functions, and the\nprotocol will automatically work with instances of the interface.\n\nNote that you should not use this interface with deftype or\nreify, as they support the protocol directly:\n\n(defprotocol P \n (foo [this]) \n (bar-me [this] [this y]))\n\n(deftype Foo [a b c] \n P\n (foo [this] a)\n (bar-me [this] b)\n (bar-me [this y] (+ c y)))\n\n(bar-me (Foo. 1 2 3) 42)\n=> 45\n\n(foo \n (let [x 42]\n (reify P \n (foo [this] 17)\n (bar-me [this] x)\n (bar-me [this y] x))))\n=> 17",
:var-type "macro",
:line 671,
:file "src/clj/clojure/core_deftype.clj"}
{:arglists ([name [& fields] & opts+specs]),
:name "defrecord",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj#L306",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defrecord",
:doc
"Alpha - subject to change\n\n(defrecord name [fields*] options* specs*)\n\nCurrently there are no options.\n\nEach spec consists of a protocol or interface name followed by zero\nor more method bodies:\n\nprotocol-or-interface-or-Object\n(methodName [args*] body)*\n\nDynamically generates compiled bytecode for class with the given\nname, in a package with the same name as the current namespace, the\ngiven fields, and, optionally, methods for protocols and/or\ninterfaces.\n\nThe class will have the (immutable) fields named by\nfields, which can have type hints. Protocols/interfaces and methods\nare optional. The only methods that can be supplied are those\ndeclared in the protocols/interfaces. Note that method bodies are\nnot closures, the local environment includes only the named fields,\nand those fields can be accessed directy.\n\nMethod definitions take the form:\n\n(methodname [args*] body)\n\nThe argument and return types can be hinted on the arg and\nmethodname symbols. If not supplied, they will be inferred, so type\nhints should be reserved for disambiguation.\n\nMethods should be supplied for all methods of the desired\nprotocol(s) and interface(s). You can also define overrides for\nmethods of Object. Note that a parameter must be supplied to\ncorrespond to the target object ('this' in Java parlance). Thus\nmethods for interfaces will take one more argument than do the\ninterface declarations. Note also that recur calls to the method\nhead should *not* pass the target object, it will be supplied\nautomatically and can not be substituted.\n\nIn the method bodies, the (unqualified) name can be used to name the\nclass (for calls to new, instance? etc).\n\nThe class will have implementations of several (clojure.lang)\ninterfaces generated automatically: IObj (metadata support) and\nIPersistentMap, and all of their superinterfaces.\n\nIn addition, defrecord will define type-and-value-based =,\nand will defined Java .hashCode and .equals consistent with the\ncontract for java.util.Map.\n\nWhen AOT compiling, generates compiled bytecode for a class with the\ngiven name (a symbol), prepends the current ns as the package, and\nwrites the .class file to the *compile-path* directory.\n\nTwo constructors will be defined, one taking the designated fields\nfollowed by a metadata map (nil for none) and an extension field\nmap (nil for none), and one taking only the fields (using nil for\nmeta and extension fields). Note that the field names __meta\nand __extmap are currently reserved and should not be used when\ndefining your own records.\n\nGiven (defrecord TypeName ...), two factory functions will be\ndefined: ->TypeName, taking positional parameters for the fields,\nand map->TypeName, taking a map of keywords to field values.",
:var-type "macro",
:line 306,
:file "src/clj/clojure/core_deftype.clj"}
{:arglists ([name & keys]),
:name "defstruct",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3631",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/defstruct",
:doc "Same as (def name (create-struct keys...))",
:var-type "macro",
:line 3631,
:file "src/clj/clojure/core.clj"}
{:arglists ([name [& fields] & opts+specs]),
:name "deftype",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj#L404",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/deftype",
:doc
"Alpha - subject to change\n\n(deftype name [fields*] options* specs*)\n\nCurrently there are no options.\n\nEach spec consists of a protocol or interface name followed by zero\nor more method bodies:\n\nprotocol-or-interface-or-Object\n(methodName [args*] body)*\n\nDynamically generates compiled bytecode for class with the given\nname, in a package with the same name as the current namespace, the\ngiven fields, and, optionally, methods for protocols and/or\ninterfaces. \n\nThe class will have the (by default, immutable) fields named by\nfields, which can have type hints. Protocols/interfaces and methods\nare optional. The only methods that can be supplied are those\ndeclared in the protocols/interfaces. Note that method bodies are\nnot closures, the local environment includes only the named fields,\nand those fields can be accessed directy. Fields can be qualified\nwith the metadata :volatile-mutable true or :unsynchronized-mutable\ntrue, at which point (set! afield aval) will be supported in method\nbodies. Note well that mutable fields are extremely difficult to use\ncorrectly, and are present only to facilitate the building of higher\nlevel constructs, such as Clojure's reference types, in Clojure\nitself. They are for experts only - if the semantics and\nimplications of :volatile-mutable or :unsynchronized-mutable are not\nimmediately apparent to you, you should not be using them.\n\nMethod definitions take the form:\n\n(methodname [args*] body)\n\nThe argument and return types can be hinted on the arg and\nmethodname symbols. If not supplied, they will be inferred, so type\nhints should be reserved for disambiguation.\n\nMethods should be supplied for all methods of the desired\nprotocol(s) and interface(s). You can also define overrides for\nmethods of Object. Note that a parameter must be supplied to\ncorrespond to the target object ('this' in Java parlance). Thus\nmethods for interfaces will take one more argument than do the\ninterface declarations. Note also that recur calls to the method\nhead should *not* pass the target object, it will be supplied\nautomatically and can not be substituted.\n\nIn the method bodies, the (unqualified) name can be used to name the\nclass (for calls to new, instance? etc).\n\nWhen AOT compiling, generates compiled bytecode for a class with the\ngiven name (a symbol), prepends the current ns as the package, and\nwrites the .class file to the *compile-path* directory.\n\nOne constructor will be defined, taking the designated fields. Note\nthat the field names __meta and __extmap are currently reserved and\nshould not be used when defining your own types.\n\nGiven (deftype TypeName ...), a factory function called ->TypeName\nwill be defined, taking positional parameters for the fields",
:var-type "macro",
:line 404,
:file "src/clj/clojure/core_deftype.clj"}
{:arglists ([& body]),
:name "delay",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L698",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/delay",
:doc
"Takes a body of expressions and yields a Delay object that will\ninvoke the body only the first time it is forced (with force or deref/@), and\nwill cache the result and return it on all subsequent force\ncalls. See also - realized?",
:var-type "macro",
:line 698,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "delay?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L707",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/delay?",
:doc "returns true if x is a Delay created with delay",
:var-type "function",
:line 707,
:file "src/clj/clojure/core.clj"}
{:arglists ([promise val]),
:name "deliver",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6413",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/deliver",
:doc
"Alpha - subject to change.\nDelivers the supplied value to the promise, releasing any pending\nderefs. A subsequent call to deliver on a promise will have no effect.",
:var-type "function",
:line 6413,
:file "src/clj/clojure/core.clj"}
{:arglists ([r]),
:name "denominator",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3227",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/denominator",
:doc "Returns the denominator part of a Ratio.",
:var-type "function",
:line 3227,
:file "src/clj/clojure/core.clj"}
{:arglists ([ref] [ref timeout-ms timeout-val]),
:name "deref",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2106",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/deref",
:doc
"Also reader macro: @ref/@agent/@var/@atom/@delay/@future/@promise. Within a transaction,\nreturns the in-transaction-value of ref, else returns the\nmost-recently-committed value of ref. When applied to a var, agent\nor atom, returns its current state. When applied to a delay, forces\nit if not already forced. When applied to a future, will block if\ncomputation not complete. When applied to a promise, will block\nuntil a value is delivered. The variant taking a timeout can be\nused for blocking references (futures and promises), and will return\ntimeout-val if the timeout (in milliseconds) is reached before a\nvalue is available. See also - realized?.",
:var-type "function",
:line 2106,
:file "src/clj/clojure/core.clj"}
{:arglists ([tag parent] [h tag parent]),
:name "derive",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5039",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/derive",
:doc
"Establishes a parent/child relationship between parent and\ntag. Parent must be a namespace-qualified symbol or keyword and\nchild can be either a namespace-qualified symbol or keyword or a\nclass. h must be a hierarchy obtained from make-hierarchy, if not\nsupplied defaults to, and modifies, the global hierarchy.",
:var-type "function",
:line 5039,
:file "src/clj/clojure/core.clj"}
{:arglists ([tag] [h tag]),
:name "descendants",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5027",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/descendants",
:doc
"Returns the immediate and indirect children of tag, through a\nrelationship established via derive. h must be a hierarchy obtained\nfrom make-hierarchy, if not supplied defaults to the global\nhierarchy. Note: does not work on Java type inheritance\nrelationships.",
:var-type "function",
:line 5027,
:file "src/clj/clojure/core.clj"}
{:arglists ([set] [set key] [set key & ks]),
:name "disj",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1428",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/disj",
:doc
"disj[oin]. Returns a new set of the same (hashed/sorted) type, that\ndoes not contain key(s).",
:var-type "function",
:line 1428,
:file "src/clj/clojure/core.clj"}
{:arglists ([set] [set key] [set key & ks]),
:name "disj!",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3029",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/disj!",
:doc
"Alpha - subject to change.\ndisj[oin]. Returns a transient set of the same (hashed/sorted) type, that\ndoes not contain key(s).",
:var-type "function",
:line 3029,
:file "src/clj/clojure/core.clj"}
{:arglists ([map] [map key] [map key & ks]),
:name "dissoc",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1414",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/dissoc",
:doc
"dissoc[iate]. Returns a new map of the same (hashed/sorted) type,\nthat does not contain a mapping for key(s).",
:var-type "function",
:line 1414,
:file "src/clj/clojure/core.clj"}
{:arglists ([map key] [map key & ks]),
:name "dissoc!",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3008",
:added "1.1",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/dissoc!",
:doc
"Alpha - subject to change.\nReturns a transient map that doesn't contain a mapping for key(s).",
:var-type "function",
:line 3008,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "distinct",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4514",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/distinct",
:doc
"Returns a lazy sequence of the elements of coll with duplicates removed",
:var-type "function",
:line 4514,
:file "src/clj/clojure/core.clj"}
{:arglists ([x] [x y] [x y & more]),
:name "distinct?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5098",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/distinct?",
:doc "Returns true if no two of the arguments are =",
:var-type "function",
:line 5098,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll] [n coll]),
:name "doall",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2773",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/doall",
:doc
"When lazy sequences are produced via functions that have side\neffects, any effects other than those needed to produce the first\nelement in the seq do not occur until the seq is consumed. doall can\nbe used to force any effects. Walks through the successive nexts of\nthe seq, retains the head and returns it, thus causing the entire\nseq to reside in memory at one time.",
:var-type "function",
:line 2773,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll] [n coll]),
:name "dorun",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2758",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/dorun",
:doc
"When lazy sequences are produced via functions that have side\neffects, any effects other than those needed to produce the first\nelement in the seq do not occur until the seq is consumed. dorun can\nbe used to force any effects. Walks through the successive nexts of\nthe seq, does not retain the head and returns nil.",
:var-type "function",
:line 2758,
:file "src/clj/clojure/core.clj"}
{:arglists ([seq-exprs & body]),
:name "doseq",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2841",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/doseq",
:doc
"Repeatedly executes body (presumably for side-effects) with\nbindings and filtering as provided by \"for\". Does not retain\nthe head of the sequence. Returns nil.",
:var-type "macro",
:line 2841,
:file "src/clj/clojure/core.clj"}
{:arglists ([& exprs]),
:name "dosync",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4546",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/dosync",
:doc
"Runs the exprs (in an implicit do) in a transaction that encompasses\nexprs and any nested calls. Starts a transaction if none is already\nrunning on this thread. Any uncaught exception will abort the\ntransaction and flow out of dosync. The exprs may be run more than\nonce, but any effects on Refs will be atomic.",
:var-type "macro",
:line 4546,
:file "src/clj/clojure/core.clj"}
{:arglists ([bindings & body]),
:name "dotimes",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2938",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/dotimes",
:doc
"bindings => name n\n\nRepeatedly executes body (presumably for side-effects) with name\nbound to integers from 0 through n-1.",
:var-type "macro",
:line 2938,
:file "src/clj/clojure/core.clj"}
{:arglists ([x & forms]),
:name "doto",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3440",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/doto",
:doc
"Evaluates x then calls all of the methods and functions with the\nvalue of x supplied at the front of the given arguments. The forms\nare evaluated in order. Returns x.\n\n(doto (new java.util.HashMap) (.put \"a\" 1) (.put \"b\" 2))",
:var-type "macro",
:line 3440,
:file "src/clj/clojure/core.clj"}
{:arglists ([x]),
:name "double",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L3122",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/double",
:doc "Coerce to double",
:var-type "function",
:line 3122,
:file "src/clj/clojure/core.clj"}
{:arglists ([size-or-seq] [size init-val-or-seq]),
:name "double-array",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4738",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/double-array",
:doc "Creates an array of doubles",
:var-type "function",
:line 4738,
:file "src/clj/clojure/core.clj"}
{:arglists ([xs]),
:name "doubles",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4799",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/doubles",
:doc "Casts to double[]",
:var-type "function",
:line 4799,
:file "src/clj/clojure/core.clj"}
{:arglists ([n coll]),
:name "drop",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2555",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/drop",
:doc
"Returns a lazy sequence of all but the first n items in coll.",
:var-type "function",
:line 2555,
:file "src/clj/clojure/core.clj"}
{:arglists ([s] [n s]),
:name "drop-last",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2567",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/drop-last",
:doc
"Return a lazy sequence of all but the last n (default 1) items in coll",
:var-type "function",
:line 2567,
:file "src/clj/clojure/core.clj"}
{:arglists ([pred coll]),
:name "drop-while",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2585",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/drop-while",
:doc
"Returns a lazy sequence of the items in coll starting from the first\nitem for which (pred item) returns logical false.",
:var-type "function",
:line 2585,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "empty",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4662",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/empty",
:doc
"Returns an empty collection of the same category as coll, or nil",
:var-type "function",
:line 4662,
:file "src/clj/clojure/core.clj"}
{:arglists ([coll]),
:name "empty?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5564",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/empty?",
:doc
"Returns true if coll has no items - same as (not (seq coll)).\nPlease use the idiom (seq x) rather than (not (empty? x))",
:var-type "function",
:line 5564,
:file "src/clj/clojure/core.clj"}
{:arglists ([ref]),
:name "ensure",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2266",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/ensure",
:doc
"Must be called in a transaction. Protects the ref from modification\nby other transactions. Returns the in-transaction-value of\nref. Allows for more concurrency than (ref-set ref @ref)",
:var-type "function",
:line 2266,
:file "src/clj/clojure/core.clj"}
{:arglists ([e]),
:name "enumeration-seq",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L5142",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/enumeration-seq",
:doc "Returns a seq on a java.util.Enumeration",
:var-type "function",
:line 5142,
:file "src/clj/clojure/core.clj"}
{:arglists ([a]),
:name "error-handler",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2012",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/error-handler",
:doc
"Returns the error-handler of agent a, or nil if there is none.\nSee set-error-handler!",
:var-type "function",
:line 2012,
:file "src/clj/clojure/core.clj"}
{:arglists ([a]),
:name "error-mode",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2037",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/error-mode",
:doc "Returns the error-mode of agent a. See set-error-mode!",
:var-type "function",
:line 2037,
:file "src/clj/clojure/core.clj"}
{:arglists ([form]),
:name "eval",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2835",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/eval",
:doc
"Evaluates the form data structure (not text!) and returns the result.",
:var-type "function",
:line 2835,
:file "src/clj/clojure/core.clj"}
{:arglists ([n]),
:name "even?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L1332",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/even?",
:doc
"Returns true if n is even, throws an exception if n is not an integer",
:var-type "function",
:line 1332,
:file "src/clj/clojure/core.clj"}
{:arglists ([p] [p1 p2] [p1 p2 p3] [p1 p2 p3 & ps]),
:name "every-pred",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L6586",
:added "1.3",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/every-pred",
:doc
"Takes a set of predicates and returns a function f that returns true if all of its\ncomposing predicates return a logical true value against all of its arguments, else it returns\nfalse. Note that f is short-circuiting in that it will stop execution on the first\nargument that triggers a logical false result against the original predicates.",
:var-type "function",
:line 6586,
:file "src/clj/clojure/core.clj"}
{:arglists ([pred coll]),
:name "every?",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L2401",
:added "1.0",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/every?",
:doc
"Returns true if (pred x) is logical true for every x in coll, else\nfalse.",
:var-type "function",
:line 2401,
:file "src/clj/clojure/core.clj"}
{:arglists ([ex]),
:name "ex-data",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4314",
:added "1.4",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/ex-data",
:doc
"Alpha - subject to change.\nReturns exception data (a map) if ex is an IExceptionInfo.\nOtherwise returns nil.",
:var-type "function",
:line 4314,
:file "src/clj/clojure/core.clj"}
{:arglists ([msg map] [msg map cause]),
:name "ex-info",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj#L4304",
:added "1.4",
:raw-source-url
"https://github.com/clojure/clojure/raw/79a1b793f87af417b430450f3c24e7cfe456e3e2/src/clj/clojure/core.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/ex-info",
:doc
"Alpha - subject to change.\nCreate an instance of ExceptionInfo, a RuntimeException subclass\nthat carries a map of additional data.",
:var-type "function",
:line 4304,
:file "src/clj/clojure/core.clj"}
{:arglists ([atype & proto+mmaps]),
:name "extend",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj#L725",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/extend",
:doc
"Implementations of protocol methods can be provided using the extend construct:\n\n (extend AType\n AProtocol\n {:foo an-existing-fn\n :bar (fn [a b] ...)\n :baz (fn ([a]...) ([a b] ...)...)}\n BProtocol \n {...} \n ...)\n\n extend takes a type/class (or interface, see below), and one or more\n protocol + method map pairs. It will extend the polymorphism of the\n protocol's methods to call the supplied methods when an AType is\n provided as the first argument. \n\n Method maps are maps of the keyword-ized method names to ordinary\n fns. This facilitates easy reuse of existing fns and fn maps, for\n code reuse/mixins without derivation or composition. You can extend\n an interface to a protocol. This is primarily to facilitate interop\n with the host (e.g. Java) but opens the door to incidental multiple\n inheritance of implementation since a class can inherit from more\n than one interface, both of which extend the protocol. It is TBD how\n to specify which impl to use. You can extend a protocol on nil.\n\n If you are supplying the definitions explicitly (i.e. not reusing\n exsting functions or mixin maps), you may find it more convenient to\n use the extend-type or extend-protocol macros.\n\n Note that multiple independent extend clauses can exist for the same\n type, not all protocols need be defined in a single extend call.\n\n See also:\n extends?, satisfies?, extenders",
:var-type "function",
:line 725,
:file "src/clj/clojure/core_deftype.clj"}
{:arglists ([p & specs]),
:name "extend-protocol",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj#L825",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj",
:wiki-url
"http://clojure.github.com/clojure//clojure.core-api.html#clojure.core/extend-protocol",
:doc
"Useful when you want to provide several implementations of the same\nprotocol all at once. Takes a single protocol and the implementation\nof that protocol for one or more types. Expands into calls to\nextend-type:\n\n(extend-protocol Protocol\n AType\n (foo [x] ...)\n (bar [x y] ...)\n BType\n (foo [x] ...)\n (bar [x y] ...)\n AClass\n (foo [x] ...)\n (bar [x y] ...)\n nil\n (foo [x] ...)\n (bar [x y] ...))\n\nexpands into:\n\n(do\n (clojure.core/extend-type AType Protocol \n (foo [x] ...) \n (bar [x y] ...))\n (clojure.core/extend-type BType Protocol \n (foo [x] ...) \n (bar [x y] ...))\n (clojure.core/extend-type AClass Protocol \n (foo [x] ...) \n (bar [x y] ...))\n (clojure.core/extend-type nil Protocol \n (foo [x] ...) \n (bar [x y] ...)))",
:var-type "macro",
:line 825,
:file "src/clj/clojure/core_deftype.clj"}
{:arglists ([t & specs]),
:name "extend-type",
:namespace "clojure.core",
:source-url
"https://github.com/clojure/clojure/blob/4784f4c5397d26f47df5c0b37ede6576ca1023c2/src/clj/clojure/core_deftype.clj#L793",
:added "1.2",
:raw-source-url
"https://github.com/clojure/clojure/raw/4784f4c5