You have a couple of problems in your code. Let's take it a line at a time:
(defn f1 [msg] (fn [msg] (println (str "hello " msg)))) Here you have two "msg" arguments. The inner one will override the outer one. If you want both, they need to be different names. For example: (defn f1 [greet] (fn [name] (println greet name))) The outer function sets the greeting, while the inner one sets the name: ((f1 "hello") "joe") => "hello joe" You then define an empty collection: (def collection '()) Which is fine, and the perform a cons: (cons collection (seq (f1 "xxx"))) However, you have the arguments backward, and you've added in a "seq" that will just cause an error. Functions cannot be transformed directly into seqs. Instead, try: (cons (f1 "hello") collection) This should work fine. - James On 22 May 2014 14:14, sorin cristea <srncris...@gmail.com> wrote: > > I see, > this is the problem even if I call correct the function, sorry for that > missing function parameter, when it will try to add the result of 'f1 "xxx" > to 'collection' it will try to transform the result, fn..., to an type > ISeq, this is what collection support, and there appear the problem.... > > > > *(defn f1 [msg] (fn[msg](println (str "hello " msg))))(def collection > '())(cons collection (seq (f1 "xxx")))* > > 'IllegalArgumentException Don't know how to create ISeq from: > ro.srncristea.blogspot.clojure.concurrency$f1$fn__2158 > clojure.lang.RT.seqFrom (RT.java:505)' > > thanks, > sorin. > > > On Thursday, May 22, 2014 3:04:39 PM UTC+3, Di Xu wrote: >> >> (defn *f1* [msg] (*fn[msg](println (str "hello " msg))*)) >>> (def collection '()) >>> (cons (f1) collection) >>> >> >> change (cons (f1) collection) into (cons (f1 "xxx") collection) >> > -- > 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/d/optout. > -- 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/d/optout.