I found out how to make it work - mulseq expects int while iterate produces a list, so I have to map it on to the elements from iterate.
however, can someone explain the error? thanks! On May 4, 10:34 pm, venkat <nivik...@gmail.com> wrote: > i have a function that returns a seq of sets, each containing the > digits corresponding to the multiples (2x...6x) for a given number > like so: > > (defn mulseq [n] > (let [n (int n)] > (map #(set (str (* n %))) [2 3 4 5 6]))) > > user> (mulseq 24) > => (#{\4 \8} #{\2 \7} #{\6 \9} #{\0 \1 \2} #{\1 \4}) > > (mulseq 1200) > => (#{\0 \2 \4} #{\0 \3 \6} #{\0 \4 \8} #{\0 \6} #{\0 \2 \7}) > > when i use this on single values, it works, but doesnt if i try to use > it over a lazy sequence > > user> (take 3 (mulseq (iterate inc 5))) > ; Evaluation aborted. > > clojure.lang.Cons cannot be cast to java.lang.Character > [Thrown class java.lang.ClassCastException] > > Restarts: > 0: [ABORT] Return to SLIME's top level. > > Backtrace: > 0: clojure.lang.RT.intCast(RT.java:900) > 1: user$mulseq__2095.invoke(NO_SOURCE_FILE:1) > 2: user$eval__2176.invoke(NO_SOURCE_FILE:1) > 3: clojure.lang.Compiler.eval(Compiler.java:4642) > 4: clojure.core$eval__5254.invoke(core.clj:2031) > 5: swank.commands.basic$eval_region__907.invoke(basic.clj:40) > 6: swank.commands.basic$eval_region__907.invoke(basic.clj:31) > 7: swank.commands.basic > $eval__927$listener_eval__929.invoke(basic.clj:54) > 8: clojure.lang.Var.invoke(Var.java:359) > 9: user$eval__2173.invoke(NO_SOURCE_FILE) > 10: clojure.lang.Compiler.eval(Compiler.java:4642) > 11: clojure.core$eval__5254.invoke(core.clj:2031) > 12: swank.core$eval_in_emacs_package__455.invoke(core.clj:59) > 13: swank.core$eval_for_emacs__533.invoke(core.clj:128) > 14: clojure.lang.Var.invoke(Var.java:367) > 15: clojure.lang.AFn.applyToHelper(AFn.java:179) > 16: clojure.lang.Var.applyTo(Var.java:476) > 17: clojure.core$apply__4379.invoke(core.clj:434) > 18: swank.core$eval_from_control__458.invoke(core.clj:66) > 19: swank.core$eval_loop__461.invoke(core.clj:71) > 20: swank.core$spawn_repl_thread__595$fn__627$fn__629.invoke(core.clj: > 183) > 21: clojure.lang.AFn.applyToHelper(AFn.java:171) > 22: clojure.lang.AFn.applyTo(AFn.java:164) > 23: clojure.core$apply__4379.invoke(core.clj:434) > 24: swank.core$spawn_repl_thread__595$fn__627.doInvoke(core.clj:180) > 25: clojure.lang.RestFn.invoke(RestFn.java:402) > 26: clojure.lang.AFn.run(AFn.java:37) > 27: java.lang.Thread.run(Thread.java:637) > > i'm sure this is trivial...please help. By way of additional context, > i want to wrap this in (drop-until #(not (distinct? %)) ...) to find > the first number whose 2x-6x multiples have the same set of digits in > a different order. i realize there may be a hundred better ways to do > this - n00b alert... > > -- > 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 > athttp://groups.google.com/group/clojure?hl=en -- 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