diff options
author | Chouser <chouser@n01se.net> | 2008-11-03 06:15:17 +0000 |
---|---|---|
committer | Chouser <chouser@n01se.net> | 2008-11-03 06:15:17 +0000 |
commit | 874fdf5066380a6495f10b3ea47e5c7912b03ab7 (patch) | |
tree | b27ee9a3700a9d169ff98ec37dbc29ddffa81ffe | |
parent | 172b5784ae0736048479255e4440cca435303826 (diff) |
ClojureScript: Support defmacro in .cljs code when *eval-defmacro* is true (not for repl service)
-rw-r--r-- | clojurescript/boot.js | 1870 | ||||
-rw-r--r-- | clojurescript/repl/repl.cljs | 18 | ||||
-rw-r--r-- | clojurescript/repl/repl.html | 3 | ||||
-rw-r--r-- | clojurescript/repl/repl.js | 111 | ||||
-rw-r--r-- | clojurescript/tojs.clj | 49 |
5 files changed, 1044 insertions, 1007 deletions
diff --git a/clojurescript/boot.js b/clojurescript/boot.js index b7a54cc7..f7f3af9f 100644 --- a/clojurescript/boot.js +++ b/clojurescript/boot.js @@ -2,13 +2,13 @@ //====== //(in-ns (quote clojure)) //--- -(function __user_fn_2877(){ +(function __user_fn_2883(){ return (clojure.in_ns.apply(null,[clojure.symbol("clojure")]))}).apply(null,[]); //====== //(def list (. clojure.lang.PersistentList creator)) //--- -(function __clojure_fn_2883(){ +(function __clojure_fn_2889(){ return (clojure.JS.def(clojure,"list",clojure.JS.getOrRun(clojure.lang.PersistentList,"creator")))}).apply(null,[]); // Skipping: (def cons (fn* cons [x seq] (. clojure.lang.RT (cons x seq)))) // Skipping: (def let (fn* let [& decl] (cons (quote let*) decl))) @@ -20,8 +20,8 @@ return (clojure.JS.def(clojure,"list",clojure.JS.getOrRun(clojure.lang.Persisten //====== //(def conj (fn conj ([coll x] (. clojure.lang.RT (conj coll x))) ([coll x & xs] (if xs (recur (conj coll x) (first xs) (rest xs)) (conj coll x))))) //--- -(function __clojure_fn_2916(){ -return (clojure.JS.def(clojure,"conj",clojure.JS.variadic(2,(function __clojure_fn_2916_conj_2918(coll_1,x_2){switch(arguments.length){ +(function __clojure_fn_2922(){ +return (clojure.JS.def(clojure,"conj",clojure.JS.variadic(2,(function __clojure_fn_2922_conj_2924(coll_1,x_2){switch(arguments.length){ case 2:var conj_0=arguments.callee; return (clojure.lang.RT.conj(coll_1,x_2))} var _cnt,_rtn,conj_0=arguments.callee,xs_3=clojure.JS.rest_args(this,arguments,2); @@ -31,40 +31,40 @@ do{_cnt=0;_rtn=((xs_3)?((_cnt=1,_rtn=[conj_0.apply(null,[coll_1,x_2]),clojure.fi //====== //(def second (fn second [x] (first (rest x)))) //--- -(function __clojure_fn_2921(){ -return (clojure.JS.def(clojure,"second",(function __clojure_fn_2921_second_2923(x_1){ +(function __clojure_fn_2927(){ +return (clojure.JS.def(clojure,"second",(function __clojure_fn_2927_second_2929(x_1){ var second_0=arguments.callee; return (clojure.first.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(null,[]); //====== //(def ffirst (fn ffirst [x] (first (first x)))) //--- -(function __clojure_fn_2926(){ -return (clojure.JS.def(clojure,"ffirst",(function __clojure_fn_2926_ffirst_2928(x_1){ +(function __clojure_fn_2932(){ +return (clojure.JS.def(clojure,"ffirst",(function __clojure_fn_2932_ffirst_2934(x_1){ var ffirst_0=arguments.callee; return (clojure.first.apply(null,[clojure.first.apply(null,[x_1])]))})))}).apply(null,[]); //====== //(def rfirst (fn rfirst [x] (rest (first x)))) //--- -(function __clojure_fn_2931(){ -return (clojure.JS.def(clojure,"rfirst",(function __clojure_fn_2931_rfirst_2933(x_1){ +(function __clojure_fn_2937(){ +return (clojure.JS.def(clojure,"rfirst",(function __clojure_fn_2937_rfirst_2939(x_1){ var rfirst_0=arguments.callee; return (clojure.rest.apply(null,[clojure.first.apply(null,[x_1])]))})))}).apply(null,[]); //====== //(def frest (fn frest [x] (first (rest x)))) //--- -(function __clojure_fn_2936(){ -return (clojure.JS.def(clojure,"frest",(function __clojure_fn_2936_frest_2938(x_1){ +(function __clojure_fn_2942(){ +return (clojure.JS.def(clojure,"frest",(function __clojure_fn_2942_frest_2944(x_1){ var frest_0=arguments.callee; return (clojure.first.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(null,[]); //====== //(def rrest (fn rrest [x] (rest (rest x)))) //--- -(function __clojure_fn_2941(){ -return (clojure.JS.def(clojure,"rrest",(function __clojure_fn_2941_rrest_2943(x_1){ +(function __clojure_fn_2947(){ +return (clojure.JS.def(clojure,"rrest",(function __clojure_fn_2947_rrest_2949(x_1){ var rrest_0=arguments.callee; return (clojure.rest.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(null,[]); // Skipping: (def seq (fn seq [coll] (. clojure.lang.RT (seq coll)))) @@ -73,8 +73,8 @@ return (clojure.rest.apply(null,[clojure.rest.apply(null,[x_1])]))})))}).apply(n //====== //(def seq? (fn seq? [x] (instance? clojure.lang.ISeq x))) //--- -(function __clojure_fn_2956(){ -return (clojure.JS.def(clojure,"seq_QMARK_",(function __clojure_fn_2956_seq_QMARK_2958(x_1){ +(function __clojure_fn_2962(){ +return (clojure.JS.def(clojure,"seq_QMARK_",(function __clojure_fn_2962_seq_QMARK_2964(x_1){ var seq_QMARK__0=arguments.callee; return (clojure.instance_QMARK_.apply(null,[clojure.lang.ISeq,x_1]))})))}).apply(null,[]); // Skipping: (def string? (fn string? [x] (instance? String x))) @@ -82,25 +82,25 @@ return (clojure.instance_QMARK_.apply(null,[clojure.lang.ISeq,x_1]))})))}).apply //====== //(def map? (fn map? [x] (instance? clojure.lang.IPersistentMap x))) //--- -(function __clojure_fn_2966(){ -return (clojure.JS.def(clojure,"map_QMARK_",(function __clojure_fn_2966_map_QMARK_2968(x_1){ +(function __clojure_fn_2972(){ +return (clojure.JS.def(clojure,"map_QMARK_",(function __clojure_fn_2972_map_QMARK_2974(x_1){ var map_QMARK__0=arguments.callee; return (clojure.instance_QMARK_.apply(null,[clojure.lang.IPersistentMap,x_1]))})))}).apply(null,[]); //====== //(def vector? (fn vector? [x] (instance? clojure.lang.IPersistentVector x))) //--- -(function __clojure_fn_2971(){ -return (clojure.JS.def(clojure,"vector_QMARK_",(function __clojure_fn_2971_vector_QMARK_2973(x_1){ +(function __clojure_fn_2977(){ +return (clojure.JS.def(clojure,"vector_QMARK_",(function __clojure_fn_2977_vector_QMARK_2979(x_1){ var vector_QMARK__0=arguments.callee; return (clojure.instance_QMARK_.apply(null,[clojure.lang.IPersistentVector,x_1]))})))}).apply(null,[]); //====== //(def sigs (fn [fdecl] (if (seq? (first fdecl)) (loop [ret [] fdecl fdecl] (if fdecl (recur (conj ret (first (first fdecl))) (rest fdecl)) (seq ret))) (list (first fdecl))))) //--- -(function __clojure_fn_2976(){ -return (clojure.JS.def(clojure,"sigs",(function __clojure_fn_2976_sigs_2978(fdecl_1){ -var fdecl_3,ret_2; +(function __clojure_fn_2982(){ +return (clojure.JS.def(clojure,"sigs",(function __clojure_fn_2982_sigs_2984(fdecl_1){ +var ret_2,fdecl_3; return (((clojure.seq_QMARK_.apply(null,[clojure.first.apply(null,[fdecl_1])]))?(((function __loop(){var _rtn,_cnt;(ret_2=clojure.lang.PersistentVector.EMPTY), (fdecl_3=fdecl_1);do{_cnt=0; _rtn=((fdecl_3)?((_cnt=1,_rtn=[clojure.conj.apply(null,[ret_2,clojure.first.apply(null,[clojure.first.apply(null,[fdecl_3])])]),clojure.rest.apply(null,[fdecl_3])],ret_2=_rtn[0],fdecl_3=_rtn[1])):(clojure.seq.apply(null,[ret_2])))}while(_cnt);return _rtn;})())):(clojure.list.apply(null,[clojure.first.apply(null,[fdecl_1])]))))})))}).apply(null,[]); @@ -109,24 +109,24 @@ _rtn=((fdecl_3)?((_cnt=1,_rtn=[clojure.conj.apply(null,[ret_2,clojure.first.appl //====== //(def meta (fn meta [x] (if (instance? clojure.lang.IObj x) (. x (meta))))) //--- -(function __clojure_fn_2987(){ -return (clojure.JS.def(clojure,"meta",(function __clojure_fn_2987_meta_2989(x_1){ +(function __clojure_fn_2993(){ +return (clojure.JS.def(clojure,"meta",(function __clojure_fn_2993_meta_2995(x_1){ var meta_0=arguments.callee; return (((clojure.instance_QMARK_.apply(null,[clojure.lang.IObj,x_1]))?((x_1).meta()):(null)))})))}).apply(null,[]); //====== //(def with-meta (fn with-meta [x m] (. x (withMeta m)))) //--- -(function __clojure_fn_2992(){ -return (clojure.JS.def(clojure,"with_meta",(function __clojure_fn_2992_with_meta_2994(x_1,m_2){ +(function __clojure_fn_2998(){ +return (clojure.JS.def(clojure,"with_meta",(function __clojure_fn_2998_with_meta_3000(x_1,m_2){ var with_meta_0=arguments.callee; return ((x_1).withMeta(m_2))})))}).apply(null,[]); //====== //(def last (fn last [s] (if (rest s) (recur (rest s)) (first s)))) //--- -(function __clojure_fn_2997(){ -return (clojure.JS.def(clojure,"last",(function __clojure_fn_2997_last_2999(s_1){ +(function __clojure_fn_3003(){ +return (clojure.JS.def(clojure,"last",(function __clojure_fn_3003_last_3005(s_1){ var _cnt,_rtn,last_0=arguments.callee; do{_cnt=0;_rtn=((clojure.rest.apply(null,[s_1]))?((_cnt=1,_rtn=[clojure.rest.apply(null,[s_1])],s_1=_rtn[0])):(clojure.first.apply(null,[s_1]))) }while(_cnt);return _rtn;})))}).apply(null,[]); @@ -134,28 +134,43 @@ do{_cnt=0;_rtn=((clojure.rest.apply(null,[s_1]))?((_cnt=1,_rtn=[clojure.rest.app //====== //(def butlast (fn butlast [s] (loop [ret [] s s] (if (rest s) (recur (conj ret (first s)) (rest s)) (seq ret))))) //--- -(function __clojure_fn_3002(){ -return (clojure.JS.def(clojure,"butlast",(function __clojure_fn_3002_butlast_3004(s_1){ -var ret_2,s_3,butlast_0=arguments.callee; +(function __clojure_fn_3008(){ +return (clojure.JS.def(clojure,"butlast",(function __clojure_fn_3008_butlast_3010(s_1){ +var s_3,ret_2,butlast_0=arguments.callee; return (((function __loop(){var _rtn,_cnt;(ret_2=clojure.lang.PersistentVector.EMPTY), (s_3=s_1);do{_cnt=0; _rtn=((clojure.rest.apply(null,[s_3]))?((_cnt=1,_rtn=[clojure.conj.apply(null,[ret_2,clojure.first.apply(null,[s_3])]),clojure.rest.apply(null,[s_3])],ret_2=_rtn[0],s_3=_rtn[1])):(clojure.seq.apply(null,[ret_2])))}while(_cnt);return _rtn;})()))})))}).apply(null,[]); -// Skipping: (def defn (fn defn [name & fdecl] (let [m (if (string? (first fdecl)) {:doc (first fdecl)} {}) fdecl (if (string? (first fdecl)) (rest fdecl) fdecl) m (if (map? (first fdecl)) (conj m (first fdecl)) m) fdecl (if (map? (first fdecl)) (rest fdecl) fdecl) fdecl (if (vector? (first fdecl)) (list fdecl) fdecl) m (if (map? (last fdecl)) (conj m (last fdecl)) m) fdecl (if (map? (last fdecl)) (butlast fdecl) fdecl) m (conj {:arglists (list (quote quote) (sigs fdecl))} m)] (list (quote def) (with-meta name (conj (if (meta name) (meta name) {}) m)) (cons (quote clojure/fn) fdecl))))) + +//====== +//(def defn (fn defn [name & fdecl] (let [m (if (string? (first fdecl)) {:doc (first fdecl)} {}) fdecl (if (string? (first fdecl)) (rest fdecl) fdecl) m (if (map? (first fdecl)) (conj m (first fdecl)) m) fdecl (if (map? (first fdecl)) (rest fdecl) fdecl) fdecl (if (vector? (first fdecl)) (list fdecl) fdecl) m (if (map? (last fdecl)) (conj m (last fdecl)) m) fdecl (if (map? (last fdecl)) (butlast fdecl) fdecl) m (conj {:arglists (list (quote quote) (sigs fdecl))} m)] (list (quote def) (with-meta name (conj (if (meta name) (meta name) {}) m)) (cons (quote clojure/fn) fdecl))))) +//--- +(function __clojure_fn_3013(){ +return (clojure.JS.def(clojure,"defn",clojure.JS.variadic(1,(function __clojure_fn_3013_defn_3015(name_1){ +var fdecl_4,fdecl_6,m_5,fdecl_7,m_8,fdecl_9,m_10,m_3,defn_0=arguments.callee,fdecl_2=clojure.JS.rest_args(this,arguments,1); +return (((m_3=((clojure.string_QMARK_.apply(null,[clojure.first.apply(null,[fdecl_2])]))?(clojure.hash_map(clojure.keyword("","doc"),clojure.first.apply(null,[fdecl_2]))):(clojure.lang.PersistentHashMap.EMPTY))), +(fdecl_4=((clojure.string_QMARK_.apply(null,[clojure.first.apply(null,[fdecl_2])]))?(clojure.rest.apply(null,[fdecl_2])):(fdecl_2))), +(m_5=((clojure.map_QMARK_.apply(null,[clojure.first.apply(null,[fdecl_4])]))?(clojure.conj.apply(null,[m_3,clojure.first.apply(null,[fdecl_4])])):(m_3))), +(fdecl_6=((clojure.map_QMARK_.apply(null,[clojure.first.apply(null,[fdecl_4])]))?(clojure.rest.apply(null,[fdecl_4])):(fdecl_4))), +(fdecl_7=((clojure.vector_QMARK_.apply(null,[clojure.first.apply(null,[fdecl_6])]))?(clojure.list.apply(null,[fdecl_6])):(fdecl_6))), +(m_8=((clojure.map_QMARK_.apply(null,[clojure.last.apply(null,[fdecl_7])]))?(clojure.conj.apply(null,[m_5,clojure.last.apply(null,[fdecl_7])])):(m_5))), +(fdecl_9=((clojure.map_QMARK_.apply(null,[clojure.last.apply(null,[fdecl_7])]))?(clojure.butlast.apply(null,[fdecl_7])):(fdecl_7))), +(m_10=clojure.conj.apply(null,[clojure.hash_map(clojure.keyword("","arglists"),clojure.list.apply(null,[clojure.symbol("quote"),clojure.sigs.apply(null,[fdecl_9])])),m_8])), +clojure.list.apply(null,[clojure.symbol("def"),clojure.with_meta.apply(null,[name_1,clojure.conj.apply(null,[((clojure.meta.apply(null,[name_1]))?(clojure.meta.apply(null,[name_1])):(clojure.lang.PersistentHashMap.EMPTY)),m_10])]),clojure.cons.apply(null,[clojure.symbol("clojure/fn"),fdecl_9])])))}))))}).apply(null,[]); // Skipping: (. (var defn) (setMacro)) //====== //(defn cast "Throws a ClassCastException if x is not a c, else returns x." [c x] (. c (cast x))) //--- -(function __clojure_fn_3015(){ -return (clojure.JS.def(clojure,"cast",(function __clojure_fn_3015_cast_3017(c_1,x_2){ +(function __clojure_fn_3021(){ +return (clojure.JS.def(clojure,"cast",(function __clojure_fn_3021_cast_3023(c_1,x_2){ return ((c_1).cast(x_2))})))}).apply(null,[]); // Skipping: (defn to-array "Returns an array of Objects containing the contents of coll, which\n can be any Collection. Maps to java.util.Collection.toArray()." [coll] (. clojure.lang.RT (toArray coll))) //====== //(defn vector "Creates a new vector containing the args." ([] []) ([& args] (. clojure.lang.LazilyPersistentVector (create args)))) //--- -(function __clojure_fn_3027(){ -return (clojure.JS.def(clojure,"vector",clojure.JS.variadic(0,(function __clojure_fn_3027_vector_3029(){switch(arguments.length){ +(function __clojure_fn_3033(){ +return (clojure.JS.def(clojure,"vector",clojure.JS.variadic(0,(function __clojure_fn_3033_vector_3035(){switch(arguments.length){ case 0:return (clojure.lang.PersistentVector.EMPTY)} var args_1=clojure.JS.rest_args(this,arguments,0); return (clojure.lang.LazilyPersistentVector.create(args_1))}))))}).apply(null,[]); @@ -163,16 +178,16 @@ return (clojure.lang.LazilyPersistentVector.create(args_1))}))))}).apply(null,[] //====== //(defn vec "Creates a new vector containing the contents of coll." ([coll] (. clojure.lang.LazilyPersistentVector (createOwning (to-array coll))))) //--- -(function __clojure_fn_3034(){ -return (clojure.JS.def(clojure,"vec",(function __clojure_fn_3034_vec_3036(coll_1){ +(function __clojure_fn_3040(){ +return (clojure.JS.def(clojure,"vec",(function __clojure_fn_3040_vec_3042(coll_1){ return (clojure.lang.LazilyPersistentVector.createOwning(clojure.to_array.apply(null,[coll_1])))})))}).apply(null,[]); // Skipping: (defn hash-map "keyval => key val\n Returns a new hash map with supplied mappings." ([] {}) ([& keyvals] (. clojure.lang.PersistentHashMap (create keyvals)))) //====== //(defn hash-set "Returns a new hash set with supplied keys." ([] #{}) ([& keys] (. clojure.lang.PersistentHashSet (create keys)))) //--- -(function __clojure_fn_3047(){ -return (clojure.JS.def(clojure,"hash_set",clojure.JS.variadic(0,(function __clojure_fn_3047_hash_set_3049(){switch(arguments.length){ +(function __clojure_fn_3053(){ +return (clojure.JS.def(clojure,"hash_set",clojure.JS.variadic(0,(function __clojure_fn_3053_hash_set_3055(){switch(arguments.length){ case 0:return (clojure.lang.PersistentHashSet.EMPTY)} var keys_1=clojure.JS.rest_args(this,arguments,0); return (clojure.lang.PersistentHashSet.create(keys_1))}))))}).apply(null,[]); @@ -180,27 +195,34 @@ return (clojure.lang.PersistentHashSet.create(keys_1))}))))}).apply(null,[]); //====== //(defn sorted-map "keyval => key val\n Returns a new sorted map with supplied mappings." ([& keyvals] (. clojure.lang.PersistentTreeMap (create keyvals)))) //--- -(function __clojure_fn_3054(){ -return (clojure.JS.def(clojure,"sorted_map",clojure.JS.variadic(0,(function __clojure_fn_3054_sorted_map_3056(){ +(function __clojure_fn_3060(){ +return (clojure.JS.def(clojure,"sorted_map",clojure.JS.variadic(0,(function __clojure_fn_3060_sorted_map_3062(){ var keyvals_1=clojure.JS.rest_args(this,arguments,0); return (clojure.lang.PersistentTreeMap.create(keyvals_1))}))))}).apply(null,[]); //====== //(defn sorted-set "Returns a new sorted set with supplied keys." ([& keys] (. clojure.lang.PersistentTreeSet (create keys)))) //--- -(function __clojure_fn_3060(){ -return (clojure.JS.def(clojure,"sorted_set",clojure.JS.variadic(0,(function __clojure_fn_3060_sorted_set_3062(){ +(function __clojure_fn_3066(){ +return (clojure.JS.def(clojure,"sorted_set",clojure.JS.variadic(0,(function __clojure_fn_3066_sorted_set_3068(){ var keys_1=clojure.JS.rest_args(this,arguments,0); return (clojure.lang.PersistentTreeSet.create(keys_1))}))))}).apply(null,[]); //====== //(defn sorted-map-by "keyval => key val\n Returns a new sorted map with supplied mappings, using the supplied comparator." ([comparator & keyvals] (. clojure.lang.PersistentTreeMap (create comparator keyvals)))) //--- -(function __clojure_fn_3066(){ -return (clojure.JS.def(clojure,"sorted_map_by",clojure.JS.variadic(1,(function __clojure_fn_3066_sorted_map_by_3068(comparator_1){ +(function __clojure_fn_3072(){ +return (clojure.JS.def(clojure,"sorted_map_by",clojure.JS.variadic(1,(function __clojure_fn_3072_sorted_map_by_3074(comparator_1){ var keyvals_2=clojure.JS.rest_args(this,arguments,1); return (clojure.lang.PersistentTreeMap.create(comparator_1,keyvals_2))}))))}).apply(null,[]); -// Skipping: (def defmacro (fn [name & args] (list (quote do) (cons (quote clojure/defn) (cons name args)) (list (quote .) (list (quote var) name) (quote (setMacro)))))) + +//====== +//(def defmacro (fn [name & args] (list (quote do) (cons (quote clojure/defn) (cons name args)) (list (quote .) (list (quote var) name) (quote (setMacro)))))) +//--- +(function __clojure_fn_3078(){ +return (clojure.JS.def(clojure,"defmacro",clojure.JS.variadic(1,(function __clojure_fn_3078_defmacro_3080(name_1){ +var args_2=clojure.JS.rest_args(this,arguments,1); +return (clojure.list.apply(null,[clojure.symbol("do"),clojure.cons.apply(null,[clojure.symbol("clojure/defn"),clojure.cons.apply(null,[name_1,args_2])]),clojure.list.apply(null,[clojure.symbol("."),clojure.list.apply(null,[clojure.symbol("var"),name_1]),clojure.JS.lit_list([clojure.symbol("setMacro")])])]))}))))}).apply(null,[]); // Skipping: (. (var defmacro) (setMacro)) // Skipping: (defmacro when "Evaluates test. If logical true, evaluates body in an implicit do." [test & body] (list (quote if) test (cons (quote do) body))) // Skipping: (defmacro when-not "Evaluates test. If logical false, evaluates body in an implicit do." [test & body] (list (quote if) test nil (cons (quote do) body))) @@ -208,39 +230,39 @@ return (clojure.lang.PersistentTreeMap.create(comparator_1,keyvals_2))}))))}).ap //====== //(defn nil? "Returns true if x is nil, false otherwise." {:tag Boolean} [x] (identical? x nil)) //--- -(function __clojure_fn_3093(){ -return (clojure.JS.def(clojure,"nil_QMARK_",(function __clojure_fn_3093_nil_QMARK_3095(x_1){ +(function __clojure_fn_3099(){ +return (clojure.JS.def(clojure,"nil_QMARK_",(function __clojure_fn_3099_nil_QMARK_3101(x_1){ return (clojure.identical_QMARK_.apply(null,[x_1,null]))})))}).apply(null,[]); //====== //(defn false? "Returns true if x is the value false, false otherwise." {:tag Boolean} [x] (identical? x false)) //--- -(function __clojure_fn_3099(){ -return (clojure.JS.def(clojure,"false_QMARK_",(function __clojure_fn_3099_false_QMARK_3101(x_1){ +(function __clojure_fn_3105(){ +return (clojure.JS.def(clojure,"false_QMARK_",(function __clojure_fn_3105_false_QMARK_3107(x_1){ return (clojure.identical_QMARK_.apply(null,[x_1,false]))})))}).apply(null,[]); //====== //(defn true? "Returns true if x is the value true, false otherwise." {:tag Boolean} [x] (identical? x true)) //--- -(function __clojure_fn_3105(){ -return (clojure.JS.def(clojure,"true_QMARK_",(function __clojure_fn_3105_true_QMARK_3107(x_1){ +(function __clojure_fn_3111(){ +return (clojure.JS.def(clojure,"true_QMARK_",(function __clojure_fn_3111_true_QMARK_3113(x_1){ return (clojure.identical_QMARK_.apply(null,[x_1,true]))})))}).apply(null,[]); //====== //(defn not "Returns true if x is logical false, false otherwise." {:tag Boolean} [x] (if x false true)) //--- -(function __clojure_fn_3111(){ -return (clojure.JS.def(clojure,"not",(function __clojure_fn_3111_not_3113(x_1){ +(function __clojure_fn_3117(){ +return (clojure.JS.def(clojure,"not",(function __clojure_fn_3117_not_3119(x_1){ return (((x_1)?(false):(true)))})))}).apply(null,[]); //====== //(defn str "With no args, returns the empty string. With one arg x, returns\n x.toString(). (str nil) returns the empty string. With more than\n one arg, returns the concatenation of the str values of the args." {:tag String} ([] "") ([x] (if (nil? x) "" (. x (toString)))) ([x & ys] (loop [sb (clojure.lang.RT/makeStringBuilder (str x)) more ys] (if more (recur (. sb (append (str (first more)))) (rest more)) (str sb))))) //--- -(function __clojure_fn_3117(){ -return (clojure.JS.def(clojure,"str",clojure.JS.variadic(1,(function __clojure_fn_3117_str_3119(x_1){switch(arguments.length){ +(function __clojure_fn_3123(){ +return (clojure.JS.def(clojure,"str",clojure.JS.variadic(1,(function __clojure_fn_3123_str_3125(x_1){switch(arguments.length){ case 0:return ("") case 1:return (((clojure.nil_QMARK_.apply(null,[x_1]))?(""):((x_1).toString())))} -var sb_3,more_4,ys_2=clojure.JS.rest_args(this,arguments,1); +var more_4,sb_3,ys_2=clojure.JS.rest_args(this,arguments,1); return (((function __loop(){var _rtn,_cnt;(sb_3=clojure.lang.RT.makeStringBuilder(clojure.str.apply(null,[x_1]))), (more_4=ys_2);do{_cnt=0; _rtn=((more_4)?((_cnt=1,_rtn=[(sb_3).append(clojure.str.apply(null,[clojure.first.apply(null,[more_4])])),clojure.rest.apply(null,[more_4])],sb_3=_rtn[0],more_4=_rtn[1])):(clojure.str.apply(null,[sb_3])))}while(_cnt);return _rtn;})()))}))))}).apply(null,[]); @@ -250,8 +272,8 @@ _rtn=((more_4)?((_cnt=1,_rtn=[(sb_3).append(clojure.str.apply(null,[clojure.firs //====== //(defn gensym "Returns a new symbol with a unique name. If a prefix string is\n supplied, the name is prefix# where # is some unique number. If\n prefix is not supplied, the prefix is 'G'." ([] (gensym "G__")) ([prefix-string] (. clojure.lang.Symbol (intern (str prefix-string (str (. clojure.lang.RT (nextID)))))))) //--- -(function __clojure_fn_3139(){ -return (clojure.JS.def(clojure,"gensym",(function __clojure_fn_3139_gensym_3141(prefix_string_1){switch(arguments.length){ +(function __clojure_fn_3145(){ +return (clojure.JS.def(clojure,"gensym",(function __clojure_fn_3145_gensym_3147(prefix_string_1){switch(arguments.length){ case 0:return (clojure.gensym.apply(null,["G__"]))} return (clojure.lang.Symbol.intern(clojure.str.apply(null,[prefix_string_1,clojure.str.apply(null,[clojure.lang.RT.nextID()])])))})))}).apply(null,[]); // Skipping: (defmacro cond "Takes a set of test/expr pairs. It evaluates each test one at a\n time. If a test returns logical true, cond evaluates and returns\n the value of the corresponding expr and doesn't evaluate any of the\n other tests or exprs. (cond) returns nil." [& clauses] (when clauses (list (quote if) (first clauses) (second clauses) (cons (quote cond) (rest (rest clauses)))))) @@ -259,16 +281,16 @@ return (clojure.lang.Symbol.intern(clojure.str.apply(null,[prefix_string_1,cloju //====== //(defn spread {:private true} [arglist] (cond (nil? arglist) nil (nil? (rest arglist)) (seq (first arglist)) :else (cons (first arglist) (spread (rest arglist))))) //--- -(function __clojure_fn_3152(){ -return (clojure.JS.def(clojure,"spread",(function __clojure_fn_3152_spread_3154(arglist_1){ +(function __clojure_fn_3158(){ +return (clojure.JS.def(clojure,"spread",(function __clojure_fn_3158_spread_3160(arglist_1){ return (((clojure.nil_QMARK_.apply(null,[arglist_1]))?(null):(((clojure.nil_QMARK_.apply(null,[clojure.rest.apply(null,[arglist_1])]))?(clojure.seq.apply(null,[clojure.first.apply(null,[arglist_1])])):(((clojure.keyword("","else"))?(clojure.cons.apply(null,[clojure.first.apply(null,[arglist_1]),clojure.spread.apply(null,[clojure.rest.apply(null,[arglist_1])])])):(null)))))))})))}).apply(null,[]); // Skipping: (defn apply "Applies fn f to the argument list formed by prepending args to argseq." {:arglists (quote ([f args* argseq]))} [f & args] (. f (applyTo (spread args)))) //====== //(defn list* "Creates a new list containing the item prepended to more." [item & more] (spread (cons item more))) //--- -(function __clojure_fn_3164(){ -return (clojure.JS.def(clojure,"list_STAR_",clojure.JS.variadic(1,(function __clojure_fn_3164_list_STAR_3166(item_1){ +(function __clojure_fn_3170(){ +return (clojure.JS.def(clojure,"list_STAR_",clojure.JS.variadic(1,(function __clojure_fn_3170_list_STAR_3172(item_1){ var more_2=clojure.JS.rest_args(this,arguments,1); return (clojure.spread.apply(null,[clojure.cons.apply(null,[item_1,more_2])]))}))))}).apply(null,[]); // Skipping: (defmacro delay "Takes a body of expressions and yields a Delay object than will\n invoke the body only the first time it is forced (with force), and\n will cache the result and return it on all subsequent force calls" [& body] (list (quote new) (quote clojure.lang.Delay) (list* (quote clojure/fn) [] body))) @@ -276,56 +298,56 @@ return (clojure.spread.apply(null,[clojure.cons.apply(null,[item_1,more_2])]))}) //====== //(defn delay? "returns true if x is a Delay created with delay" [x] (instance? clojure.lang.Delay x)) //--- -(function __clojure_fn_3176(){ -return (clojure.JS.def(clojure,"delay_QMARK_",(function __clojure_fn_3176_delay_QMARK_3178(x_1){ +(function __clojure_fn_3182(){ +return (clojure.JS.def(clojure,"delay_QMARK_",(function __clojure_fn_3182_delay_QMARK_3184(x_1){ return (clojure.instance_QMARK_.apply(null,[clojure.lang.Delay,x_1]))})))}).apply(null,[]); //====== //(defn force "If x is a Delay, returns the (possibly cached) value of its expression, else returns x" [x] (. clojure.lang.Delay (force x))) //--- -(function __clojure_fn_3182(){ -return (clojure.JS.def(clojure,"force",(function __clojure_fn_3182_force_3184(x_1){ +(function __clojure_fn_3188(){ +return (clojure.JS.def(clojure,"force",(function __clojure_fn_3188_force_3190(x_1){ return (clojure.lang.Delay.force(x_1))})))}).apply(null,[]); //====== //(defn fnseq "Returns a seq object whose first is first and whose rest is the\n value produced by calling restfn with no arguments. restfn will be\n called at most once per step in the sequence, e.g. calling rest\n repeatedly on the head of the seq calls restfn once - the value it\n yields is cached." [first restfn] (new clojure.lang.FnSeq first restfn)) //--- -(function __clojure_fn_3188(){ -return (clojure.JS.def(clojure,"fnseq",(function __clojure_fn_3188_fnseq_3190(first_1,restfn_2){ +(function __clojure_fn_3194(){ +return (clojure.JS.def(clojure,"fnseq",(function __clojure_fn_3194_fnseq_3196(first_1,restfn_2){ return ((new clojure.lang.FnSeq(first_1,restfn_2)))})))}).apply(null,[]); // Skipping: (defmacro lazy-cons "Expands to code which produces a seq object whose first is\n first-expr and whose rest is rest-expr, neither of which is\n evaluated until first/rest is called. Each expr will be evaluated at most\n once per step in the sequence, e.g. calling first/rest repeatedly on the\n same node of the seq evaluates first/rest-expr once - the values they yield are\n cached." [first-expr & rest-expr] (list (quote new) (quote clojure.lang.LazyCons) (list (quote clojure/fn) (list [] first-expr) (list* [(gensym)] rest-expr)))) //====== //(defn cache-seq "Given a seq s, returns a lazy seq that will touch each element of s\n at most once, caching the results." [s] (when s (clojure.lang.CachedSeq. s))) //--- -(function __clojure_fn_3200(){ -return (clojure.JS.def(clojure,"cache_seq",(function __clojure_fn_3200_cache_seq_3202(s_1){ +(function __clojure_fn_3206(){ +return (clojure.JS.def(clojure,"cache_seq",(function __clojure_fn_3206_cache_seq_3208(s_1){ return (((s_1)?((new clojure.lang.CachedSeq(s_1))):(null)))})))}).apply(null,[]); //====== //(defn concat "Returns a lazy seq representing the concatenation of\tthe elements in the supplied colls." ([] nil) ([x] (seq x)) ([x y] (if (seq x) (lazy-cons (first x) (concat (rest x) y)) (seq y))) ([x y & zs] (let [cat (fn cat [xys zs] (if (seq xys) (lazy-cons (first xys) (cat (rest xys) zs)) (when zs (recur (first zs) (rest zs)))))] (cat (concat x y) zs)))) //--- -(function __clojure_fn_3206(){ -return (clojure.JS.def(clojure,"concat",clojure.JS.variadic(2,(function __clojure_fn_3206_concat_3208(x_1,y_2){switch(arguments.length){ +(function __clojure_fn_3212(){ +return (clojure.JS.def(clojure,"concat",clojure.JS.variadic(2,(function __clojure_fn_3212_concat_3214(x_1,y_2){switch(arguments.length){ case 1:return (clojure.seq.apply(null,[x_1])) -case 2:return (((clojure.seq.apply(null,[x_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3206_concat_3208_fn_3213(G__3212_1){switch(arguments.length){ +case 2:return (((clojure.seq.apply(null,[x_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3212_concat_3214_fn_3219(G__3218_1){switch(arguments.length){ case 0:return (clojure.first.apply(null,[x_1]))} return (clojure.concat.apply(null,[clojure.rest.apply(null,[x_1]),y_2]))})))):(clojure.seq.apply(null,[y_2])))) case 0:return (null)} var cat_4,zs_3=clojure.JS.rest_args(this,arguments,2); -return (((cat_4=(function __clojure_fn_3206_concat_3208_cat_3218(xys_1,zs_2){ +return (((cat_4=(function __clojure_fn_3212_concat_3214_cat_3224(xys_1,zs_2){ var _cnt,_rtn,cat_0=arguments.callee; -do{_cnt=0;_rtn=((clojure.seq.apply(null,[xys_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3206_concat_3208_cat_3218_fn_3220(G__3219_1){switch(arguments.length){ +do{_cnt=0;_rtn=((clojure.seq.apply(null,[xys_1]))?((new clojure.lang.LazyCons((function __clojure_fn_3212_concat_3214_cat_3224_fn_3226(G__3225_1){switch(arguments.length){ case 0:return (clojure.first.apply(null,[xys_1]))} return (cat_0.apply(null,[clojure.rest.apply(null,[xys_1]),zs_2]))})))):(((zs_2)?((_cnt=1,_rtn=[clojure.first.apply(null,[zs_2]),clojure.rest.apply(null,[zs_2])],xys_1=_rtn[0],zs_2=_rtn[1])):(null)))) }while(_cnt);return _rtn;})), cat_4.apply(null,[clojure.concat.apply(null,[x_1,y_2]),zs_3])))}))))}).apply(null,[]); //====== -//(defn = "Equality. Returns true if x equals y, false if not. Same as\n Java x.equals(y) except it also works for nil, and compares\n numbers in a type-independent manner. Clojure's immutable data\n structures define equals() (and thus =) as a value, not an identity,\n comparison." {:tag Boolean, :inline-arities #{2}, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Util)) (clojure/list (quote clojure/equal)) (clojure/list x) (clojure/list y)))} ([x] true) ([x y] (. clojure.lang.Util (equal x y))) ([x y & more] (if (= x y) (if (rest more) (recur y (first more) (rest more)) (= y (first more))) false))) +//(defn = "Equality. Returns true if x equals y, false if not. Same as\n Java x.equals(y) except it also works for nil, and compares\n numbers in a type-independent manner. Clojure's immutable data\n structures define equals() (and thus =) as a value, not an identity,\n comparison." {:tag Boolean, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Util)) (clojure/list (quote clojure/equal)) (clojure/list x) (clojure/list y))), :inline-arities #{2}} ([x] true) ([x y] (. clojure.lang.Util (equal x y))) ([x y & more] (if (= x y) (if (rest more) (recur y (first more) (rest more)) (= y (first more))) false))) //--- -(function __clojure_fn_3227(){ -return (clojure.JS.def(clojure,"_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3227_EQ_3232(x_1,y_2){switch(arguments.length){ +(function __clojure_fn_3233(){ +return (clojure.JS.def(clojure,"_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3233_EQ_3238(x_1,y_2){switch(arguments.length){ case 2:return (clojure.lang.Util.equal(x_1,y_2)) case 1:return (true)} var _cnt,_rtn,more_3=clojure.JS.rest_args(this,arguments,2); @@ -335,33 +357,33 @@ do{_cnt=0;_rtn=((clojure.lang.Util.equal(x_1,y_2))?(((clojure.rest.apply(null,[m //====== //(defn not= "Same as (not (= obj1 obj2))" {:tag Boolean} ([x] false) ([x y] (not (= x y))) ([x y & more] (not (apply = x y more)))) //--- -(function __clojure_fn_3238(){ -return (clojure.JS.def(clojure,"not_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3238_not_EQ_3240(x_1,y_2){switch(arguments.length){ -case 1:return (false) -case 2:return (clojure.not.apply(null,[clojure.lang.Util.equal(x_1,y_2)]))} +(function __clojure_fn_3244(){ +return (clojure.JS.def(clojure,"not_EQ_",clojure.JS.variadic(2,(function __clojure_fn_3244_not_EQ_3246(x_1,y_2){switch(arguments.length){ +case 2:return (clojure.not.apply(null,[clojure.lang.Util.equal(x_1,y_2)])) +case 1:return (false)} var more_3=clojure.JS.rest_args(this,arguments,2); return (clojure.not.apply(null,[clojure.apply.apply(null,[clojure._EQ_,x_1,y_2,more_3])]))}))))}).apply(null,[]); //====== //(defn compare "Comparator. Returns 0 if x equals y, -1 if x is logically 'less\n than' y, else 1. Same as Java x.compareTo(y) except it also works\n for nil, and compares numbers in a type-independent manner. x must\n implement Comparable" {:tag Integer, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Util)) (clojure/list (quote clojure/compare)) (clojure/list x) (clojure/list y)))} [x y] (. clojure.lang.Util (compare x y))) //--- -(function __clojure_fn_3246(){ -return (clojure.JS.def(clojure,"compare",(function __clojure_fn_3246_compare_3251(x_1,y_2){ +(function __clojure_fn_3252(){ +return (clojure.JS.def(clojure,"compare",(function __clojure_fn_3252_compare_3257(x_1,y_2){ return (clojure.lang.Util.compare(x_1,y_2))})))}).apply(null,[]); -// Skipping: (defmacro and "Evaluates exprs one at a time, from left to right. If a form\n returns logical false (nil or false), and returns that value and\n doesn't evaluate any of the other expressions, otherwise it returns\n the value of the last expr. (and) returns true." ([] true) ([x] x) ([x & rest] (clojure/concat (clojure/list (quote clojure/let)) (clojure/list (clojure/apply clojure/vector (clojure/concat (clojure/list (quote and__3255)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote and__3255)) (clojure/list (clojure/concat (clojure/list (quote clojure/and)) rest)) (clojure/list (quote and__3255))))))) -// Skipping: (defmacro or "Evaluates exprs one at a time, from left to right. If a form\n returns a logical true value, or returns that value and doesn't\n evaluate any of the other expressions, otherwise it returns the\n value of the last expression. (or) returns nil." ([] nil) ([x] x) ([x & rest] (clojure/concat (clojure/list (quote clojure/let)) (clojure/list (clojure/apply clojure/vector (clojure/concat (clojure/list (quote or__3264)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote or__3264)) (clojure/list (quote or__3264)) (clojure/list (clojure/concat (clojure/list (quote clojure/or)) rest))))))) +// Skipping: (defmacro and "Evaluates exprs one at a time, from left to right. If a form\n returns logical false (nil or false), and returns that value and\n doesn't evaluate any of the other expressions, otherwise it returns\n the value of the last expr. (and) returns true." ([] true) ([x] x) ([x & rest] (clojure/concat (clojure/list (quote clojure/let)) (clojure/list (clojure/apply clojure/vector (clojure/concat (clojure/list (quote and__3261)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote and__3261)) (clojure/list (clojure/concat (clojure/list (quote clojure/and)) rest)) (clojure/list (quote and__3261))))))) +// Skipping: (defmacro or "Evaluates exprs one at a time, from left to right. If a form\n returns a logical true value, or returns that value and doesn't\n evaluate any of the other expressions, otherwise it returns the\n value of the last expression. (or) returns nil." ([] nil) ([x] x) ([x & rest] (clojure/concat (clojure/list (quote clojure/let)) (clojure/list (clojure/apply clojure/vector (clojure/concat (clojure/list (quote or__3270)) (clojure/list x)))) (clojure/list (clojure/concat (clojure/list (quote if)) (clojure/list (quote or__3270)) (clojure/list (quote or__3270)) (clojure/list (clojure/concat (clojure/list (quote clojure/or)) rest))))))) //====== //(defn reduce "f should be a function of 2 arguments. If val is not supplied,\n returns the result of applying f to the first 2 items in coll, then\n applying f to that result and the 3rd item, etc. If coll contains no\n items, f must accept no arguments as well, and reduce returns the\n result of calling f with no arguments. If coll has only 1 item, it\n is returned and f is not called. If val is supplied, returns the\n result of applying f to val and the first item in coll, then\n applying f to that result and the 2nd item, etc. If coll contains no\n items, returns val and f is not called." ([f coll] (let [s (seq coll)] (if s (if (instance? clojure.lang.IReduce s) (. s (reduce f)) (reduce f (first s) (rest s))) (f)))) ([f val coll] (let [s (seq coll)] (if (instance? clojure.lang.IReduce s) (. s (reduce f val)) ((fn [f val s] (if s (recur f (f val (first s)) (rest s)) val)) f val s))))) //--- -(function __clojure_fn_3273(){ -return (clojure.JS.def(clojure,"reduce",(function __clojure_fn_3273_reduce_3275(f_1,val_2,coll_3){switch(arguments.length){ +(function __clojure_fn_3279(){ +return (clojure.JS.def(clojure,"reduce",(function __clojure_fn_3279_reduce_3281(f_1,val_2,coll_3){switch(arguments.length){ case 2:var s_3,coll_2=arguments[1]; return (((s_3=clojure.seq.apply(null,[coll_2])), ((s_3)?(((clojure.instance_QMARK_.apply(null,[clojure.lang.IReduce,s_3]))?((s_3).reduce(f_1)):(clojure.reduce.apply(null,[f_1,clojure.first.apply(null,[s_3]),clojure.rest.apply(null,[s_3])])))):(f_1.apply(null,[])))))} var s_4; return (((s_4=clojure.seq.apply(null,[coll_3])), -((clojure.instance_QMARK_.apply(null,[clojure.lang.IReduce,s_4]))?((s_4).reduce(f_1,val_2)):((function __clojure_fn_3273_reduce_3275_fn_3278(f_1,val_2,s_3){ +((clojure.instance_QMARK_.apply(null,[clojure.lang.IReduce,s_4]))?((s_4).reduce(f_1,val_2)):((function __clojure_fn_3279_reduce_3281_fn_3284(f_1,val_2,s_3){ var _cnt,_rtn; do{_cnt=0;_rtn=((s_3)?((_cnt=1,_rtn=[f_1,f_1.apply(null,[val_2,clojure.first.apply(null,[s_3])]),clojure.rest.apply(null,[s_3])],f_1=_rtn[0],val_2=_rtn[1],s_3=_rtn[2])):(val_2)) }while(_cnt);return _rtn;}).apply(null,[f_1,val_2,s_4])))))})))}).apply(null,[]); @@ -369,57 +391,57 @@ do{_cnt=0;_rtn=((s_3)?((_cnt=1,_rtn=[f_1,f_1.apply(null,[val_2,clojure.first.app //====== //(defn reverse "Returns a seq of the items in coll in reverse order. Not lazy." [coll] (reduce conj nil coll)) //--- -(function __clojure_fn_3283(){ -return (clojure.JS.def(clojure,"reverse",(function __clojure_fn_3283_reverse_3285(coll_1){ +(function __clojure_fn_3289(){ +return (clojure.JS.def(clojure,"reverse",(function __clojure_fn_3289_reverse_3291(coll_1){ return (clojure.reduce.apply(null,[clojure.conj,null,coll_1]))})))}).apply(null,[]); //====== -//(defn + "Returns the sum of nums. (+) returns 0." {:inline-arities #{2}, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/add)) (clojure/list x) (clojure/list y)))))} ([] 0) ([x] (clojure.lang.RT/numberCast x)) ([x y] (. clojure.lang.Numbers (add x y))) ([x y & more] (reduce + (+ x y) more))) +//(defn + "Returns the sum of nums. (+) returns 0." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/add)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([] 0) ([x] (clojure.lang.RT/numberCast x)) ([x y] (. clojure.lang.Numbers (add x y))) ([x y & more] (reduce + (+ x y) more))) //--- -(function __clojure_fn_3289(){ -return (clojure.JS.def(clojure,"_PLUS_",clojure.JS.variadic(2,(function __clojure_fn_3289_PLUS_3294(x_1,y_2){switch(arguments.length){ -case 2:return (clojure.lang.Numbers.add(x_1,y_2)) +(function __clojure_fn_3295(){ +return (clojure.JS.def(clojure,"_PLUS_",clojure.JS.variadic(2,(function __clojure_fn_3295_PLUS_3300(x_1,y_2){switch(arguments.length){ case 0:return ((0)) -case 1:return (clojure.lang.RT.numberCast(x_1))} +case 1:return (clojure.lang.RT.numberCast(x_1)) +case 2:return (clojure.lang.Numbers.add(x_1,y_2))} var more_3=clojure.JS.rest_args(this,arguments,2); return (clojure.reduce.apply(null,[clojure._PLUS_,clojure.lang.Numbers.add(x_1,y_2),more_3]))}))))}).apply(null,[]); //====== -//(defn * "Returns the product of nums. (*) returns 1." {:inline-arities #{2}, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/multiply)) (clojure/list x) (clojure/list y)))))} ([] 1) ([x] (clojure.lang.RT/numberCast x)) ([x y] (. clojure.lang.Numbers (multiply x y))) ([x y & more] (reduce * (* x y) more))) +//(defn * "Returns the product of nums. (*) returns 1." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/multiply)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([] 1) ([x] (clojure.lang.RT/numberCast x)) ([x y] (. clojure.lang.Numbers (multiply x y))) ([x y & more] (reduce * (* x y) more))) //--- -(function __clojure_fn_3301(){ -return (clojure.JS.def(clojure,"_STAR_",clojure.JS.variadic(2,(function __clojure_fn_3301_STAR_3306(x_1,y_2){switch(arguments.length){ -case 0:return ((1)) +(function __clojure_fn_3307(){ +return (clojure.JS.def(clojure,"_STAR_",clojure.JS.variadic(2,(function __clojure_fn_3307_STAR_3312(x_1,y_2){switch(arguments.length){ case 2:return (clojure.lang.Numbers.multiply(x_1,y_2)) +case 0:return ((1)) case 1:return (clojure.lang.RT.numberCast(x_1))} var more_3=clojure.JS.rest_args(this,arguments,2); return (clojure.reduce.apply(null,[clojure._STAR_,clojure.lang.Numbers.multiply(x_1,y_2),more_3]))}))))}).apply(null,[]); //====== -//(defn / "If no denominators are supplied, returns 1/numerator,\n else returns numerator divided by all of the denominators." {:inline-arities #{2}, :inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/divide)) (clojure/list x) (clojure/list y)))))} ([x] (/ 1 x)) ([x y] (. clojure.lang.Numbers (divide x y))) ([x y & more] (reduce / (/ x y) more))) +//(defn / "If no denominators are supplied, returns 1/numerator,\n else returns numerator divided by all of the denominators." {:inline (fn [x y] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/divide)) (clojure/list x) (clojure/list y))))), :inline-arities #{2}} ([x] (/ 1 x)) ([x y] (. clojure.lang.Numbers (divide x y))) ([x y & more] (reduce / (/ x y) more))) //--- -(function __clojure_fn_3313(){ -return (clojure.JS.def(clojure,"_SLASH_",clojure.JS.variadic(2,(function __clojure_fn_3313_SLASH_3318(x_1,y_2){switch(arguments.length){ -case 2:return (clojure.lang.Numbers.divide(x_1,y_2)) -case 1:return (clojure.lang.Numbers.divide((1),x_1))} +(function __clojure_fn_3319(){ +return (clojure.JS.def(clojure,"_SLASH_",clojure.JS.variadic(2,(function __clojure_fn_3319_SLASH_3324(x_1,y_2){switch(arguments.length){ +case 1:return (clojure.lang.Numbers.divide((1),x_1)) +case 2:return (clojure.lang.Numbers.divide(x_1,y_2))} var more_3=clojure.JS.rest_args(this,arguments,2); return (clojure.reduce.apply(null,[clojure._SLASH_,clojure.lang.Numbers.divide(x_1,y_2),more_3]))}))))}).apply(null,[]); //====== -//(defn - "If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result." {:inline-arities #{1 2}, :inline (fn [& args] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/minus)) args))))} ([x] (. clojure.lang.Numbers (minus x))) ([x y] (. clojure.lang.Numbers (minus x y))) ([x y & more] (reduce - (- x y) more))) +//(defn - "If no ys are supplied, returns the negation of x, else subtracts\n the ys from x and returns the result." {:inline (fn [& args] (clojure/concat (clojure/list (quote .)) (clojure/list (quote clojure.lang.Numbers)) (clojure/list (clojure/concat (clojure/list (quote clojure/minus)) args)))), :inline-arities #{1 2}} ([x] (. clojure.lang.Numbers (minus x))) ([x y] (. clojure.lang.Numbers (minus x y))) ([x y & more] (reduce - (- x y) more))) //--- -(function __clojure_fn_3324(){ -return (clojure.JS.def(clojure,"_",clojure.JS.variadic(2,(function __clojure_fn_3324_3329(x_1,y_2){switch(arguments.length){ -case 1:return (clojure.lang.Numbers.minus(x_1)) -case 2:return (clojure.lang.Numbers.minus(x_1,y_2))} +(function __clojure_fn_3330(){ +return (clojure.JS.def(clojure,"_",clojure.JS.variadic(2,(function __clojure_fn_3330_3335(x_1,y_2){switch(arguments.length){ +case 2:return (clojure.lang.Numbers.minus(x_1,y_2)) +case 1:return (clojure.lang.Numbers.minus(x_1))} var more_3=clojure.JS.rest_args(this,arguments,2); return |