; Copyright (c) Rich Hickey. All rights reserved.; The use and distribution terms for this software are covered by the; Common Public License 1.0 (http://opensource.org/licenses/cpl.php); which can be found in the file CPL.TXT at the root of this distribution.; By using this software in any fashion, you are agreeing to be bound by; the terms of this license.; You must not remove this notice, or any other, from this software.(in-ns 'clojure)(def list (. clojure.lang.PersistentListcreator))(def cons (fn [xseq](. clojure.lang.RT(cons xseq))))(def conj (fn [collx](. clojure.lang.RT(conj collx))))(def defn (fn [name &fdecl](list 'defname (cons 'fn(cons name fdecl)))))(. (the-vardefn)(setMacro))(defn instance? [#^Classcx](. c(isInstancex)))(defn vector([][])([&args](. clojure.lang.PersistentVector(createargs))))(defn hash-map([]{})([&args](. clojure.lang.PersistentHashMap(createargs))))(defn sorted-map([&args](. clojure.lang.PersistentTreeMap(createargs))))(defn sorted-map-by([comparator &args](. clojure.lang.PersistentTreeMap(createcomparator args))));;;;;;;;;;;;;;;;; metadata ;;;;;;;;;;;;;;;;;;;;;;;;;;;(defn meta [#^clojure.lang.IObjx](. x(meta)))(defn with-meta [#^clojure.lang.IObjxm](. x(withMetam)));;;;;;;;;;;;;;;;;;;;(def defmacro (fn [name &args](list 'do(cons 'defn(cons name args))(list '.(list 'the-varname)'(setMacro)))))(. (the-vardefmacro)(setMacro))(defmacro when [test &body](list 'iftest (cons 'dobody)))(defmacro when-not [test &body](list 'iftest nil(cons 'dobody)))(defn #^Booleannil? [x](identical? xnil))(defn #^Booleanfalse? [x](identical? xfalse))(defn #^Booleantrue? [x](identical? xtrue))(defn not [x](if xfalsetrue))(defn first [x](. clojure.lang.RT(first x)))(defn rest [x](. clojure.lang.RT(rest x)))(defn second [x](. clojure.lang.RT(second x)))(defn ffirst [x](first (first x)))(defn rfirst [x](rest (first x)))(defn frest [x](first (rest x)))(defn rrest [x](rest (rest x)))(defn #^Boolean= [xy](. clojure.lang.RT(equalxy)))(defn #^Booleannot= [xy](not (= xy)))(defn #^Stringstr [#^Objectx](if x(. x(toString))""))(defn #^Stringstrcat([]"")([x](str x))([x&ys](loop [sb(new StringBuilder(str x))moreys](if more