=> (are [ x y ] (= x y) ((fn[x] x) 1) 1) StackOverflowError clojure.lang.PersistentArrayMap.containsKey (PersistentArrayMap.java:158) => (dorun (map #(println (.toString %)) (take-last 100 (.getStackTrace *e )))) clojure.lang.RestFn.invoke(RestFn.java:408) clojure.core$map$fn__4226.invoke(core.clj:2485) clojure.lang.LazySeq.sval(LazySeq.java:42) clojure.lang.LazySeq.seq(LazySeq.java:60) clojure.lang.RT.seq(RT.java:475) clojure.core$seq.invoke(core.clj:133) clojure.core.protocols$seq_reduce.invoke(protocols.clj:30) clojure.core.protocols$fn__6062.invoke(protocols.clj:54) clojure.core.protocols$fn__6015$G__6010__6028.invoke(protocols.clj:13) clojure.core$reduce.invoke(core.clj:6149) clojure.core$into.invoke(core.clj:6196) clojure.walk$walk.invoke(walk.clj:47) clojure.walk$prewalk.invoke(walk.clj:62) clojure.lang.AFn.applyToHelper(AFn.java:163) clojure.lang.AFn.applyTo(AFn.java:151) clojure.core$apply.invoke(core.clj:619) clojure.core$partial$fn__4209.doInvoke(core.clj:2396) clojure.lang.RestFn.invoke(RestFn.java:408) clojure.core$map$fn__4226.invoke(core.clj:2487) clojure.lang.LazySeq.sval(LazySeq.java:42) clojure.lang.LazySeq.seq(LazySeq.java:60) clojure.lang.Cons.next(Cons.java:39) clojure.lang.RT.boundedLength(RT.java:1645) clojure.lang.RestFn.applyTo(RestFn.java:130) clojure.core$apply.invoke(core.clj:617) clojure.walk$walk.invoke(walk.clj:44) clojure.walk$prewalk.invoke(walk.clj:62) clojure.lang.AFn.applyToHelper(AFn.java:163) clojure.lang.AFn.applyTo(AFn.java:151) clojure.core$apply.invoke(core.clj:619) clojure.core$partial$fn__4209.doInvoke(core.clj:2396) clojure.lang.RestFn.invoke(RestFn.java:408) clojure.core$map$fn__4226.invoke(core.clj:2487) clojure.lang.LazySeq.sval(LazySeq.java:42) clojure.lang.LazySeq.seq(LazySeq.java:60) clojure.lang.RT.seq(RT.java:475) clojure.core$seq.invoke(core.clj:133) clojure.core$apply.invoke(core.clj:617) clojure.walk$walk.invoke(walk.clj:44) clojure.walk$prewalk.invoke(walk.clj:62) clojure.lang.AFn.applyToHelper(AFn.java:163) clojure.lang.AFn.applyTo(AFn.java:151) clojure.core$apply.invoke(core.clj:619) clojure.core$partial$fn__4209.doInvoke(core.clj:2396) clojure.lang.RestFn.invoke(RestFn.java:408) clojure.core$map$fn__4226.invoke(core.clj:2487) clojure.lang.LazySeq.sval(LazySeq.java:42) clojure.lang.LazySeq.seq(LazySeq.java:60) clojure.lang.Cons.next(Cons.java:39) clojure.lang.RT.boundedLength(RT.java:1645) clojure.lang.RestFn.applyTo(RestFn.java:130) clojure.core$apply.invoke(core.clj:617) clojure.walk$walk.invoke(walk.clj:44) clojure.walk$prewalk.invoke(walk.clj:62) clojure.lang.AFn.applyToHelper(AFn.java:163) clojure.lang.AFn.applyTo(AFn.java:151) clojure.core$apply.invoke(core.clj:619) clojure.core$partial$fn__4209.doInvoke(core.clj:2396) clojure.lang.RestFn.invoke(RestFn.java:408) clojure.core$map$fn__4226.invoke(core.clj:2487) clojure.lang.LazySeq.sval(LazySeq.java:42) clojure.lang.LazySeq.seq(LazySeq.java:60) clojure.lang.Cons.next(Cons.java:39) clojure.lang.LazySeq.next(LazySeq.java:92) clojure.lang.RT.next(RT.java:589) clojure.core$next.invoke(core.clj:64) clojure.core$dorun.invoke(core.clj:2781) clojure.core$doall.invoke(core.clj:2796) clojure.walk$walk.invoke(walk.clj:46) clojure.walk$prewalk.invoke(walk.clj:62) clojure.walk$prewalk_replace.invoke(walk.clj:113) clojure.template$apply_template.invoke(template.clj:43) clojure.template$do_template$fn__7061.invoke(template.clj:54) clojure.core$map$fn__4226.invoke(core.clj:2487) clojure.lang.LazySeq.sval(LazySeq.java:42) clojure.lang.LazySeq.seq(LazySeq.java:67) clojure.lang.Cons.next(Cons.java:39) clojure.lang.RT.next(RT.java:589) clojure.lang.Compiler.eval(Compiler.java:6606) clojure.lang.Compiler.eval(Compiler.java:6582) clojure.core$eval.invoke(core.clj:2852) clojure.main$repl$read_eval_print__6625.invoke(main.clj:251) clojure.main$repl$fn__6630$fn__6631.invoke(main.clj:269) clojure.main$repl$fn__6630.invoke(main.clj:269) clojure.main$repl.doInvoke(main.clj:267) clojure.lang.RestFn.invoke(RestFn.java:1096) clojure.tools.nrepl.middleware.interruptible_eval$evaluate$fn__988.invoke(interruptible_eval.clj:58) clojure.lang.AFn.applyToHelper(AFn.java:159) clojure.lang.AFn.applyTo(AFn.java:151) clojure.core$apply.invoke(core.clj:617) clojure.core$with_bindings_STAR_.doInvoke(core.clj:1788) clojure.lang.RestFn.invoke(RestFn.java:425) clojure.tools.nrepl.middleware.interruptible_eval$evaluate.invoke(interruptible_eval.clj:43) clojure.tools.nrepl.middleware.interruptible_eval$interruptible_eval$fn__1029$fn__1032.invoke(interruptible_eval.clj:173) clojure.core$comp$fn__4173.invoke(core.clj:2330) clojure.tools.nrepl.middleware.interruptible_eval$run_next$fn__1022.invoke(interruptible_eval.clj:140) clojure.lang.AFn.run(AFn.java:24) java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) java.lang.Thread.run(Thread.java:722) nil
On Mon, Jan 28, 2013 at 4:49 PM, James Xu <xumingming64398...@gmail.com>wrote: > user=> (macroexpand-1 (are [ x y ] (= x y) ((fn[a] a) 1) 1)) > true > user=> (macroexpand-1 '(are [ x y ] (= x y) ((fn[a] a) 1) 1)) > (clojure.template/do-template [x y] (clojure.test/is (= x y)) ((fn [a] a) > 1) 1) > > > The StackOverflowError may have something to do with the do-template func > > On 13-1-28 下午11:37, "John Lawrence Aspden" <aspd...@googlemail.com> wrote: > > >Hi, am I doing something wrong here?: > > > >user=> (clojure-version) > >"1.4.0" > >user=> (use 'clojure.test) > >nil > >user=> (is ((fn[x] x) 1) 1) > >1 > >user=> (are [ x y ] (= x y) ((fn[x] x) 1) 1) > >StackOverflowError clojure.core/map/fn--4087 (core.clj:2426) > > > >user=> (macroexpand '(are [ x y ] (= x y) ((fn[x] x) 1) 1)) > >StackOverflowError clojure.lang.RT.boundedLength (RT.java:1633) > > > >-- > >-- > >You received this message because you are subscribed to the Google > >Groups "Clojure" group. > >To post to this group, send email to clojure@googlegroups.com > >Note that posts from new members are moderated - please be patient with > >your first post. > >To unsubscribe from this group, send email to > >clojure+unsubscr...@googlegroups.com > >For more options, visit this group at > >http://groups.google.com/group/clojure?hl=en > >--- > >You received this message because you are subscribed to the Google Groups > >"Clojure" group. > >To unsubscribe from this group, send email to > >clojure+unsubscr...@googlegroups.com. > >For more options, visit https://groups.google.com/groups/opt_out. > > > > > > > -- > -- > You received this message because you are subscribed to the Google > Groups "Clojure" group. > To post to this group, send email to clojure@googlegroups.com > Note that posts from new members are moderated - please be patient with > your first post. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com > For more options, visit this group at > http://groups.google.com/group/clojure?hl=en > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group, send email to > clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- I may be wrong or incomplete. Please express any corrections / additions, they are encouraged and appreciated. At least one entity is bound to be transformed if you do ;) -- -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.