Hi people! Hmmm.... (str (repeat ....)) doesn't concatenate the repeated values.
As (str ("f" "o" "o")) doesn't return "foo", it returns "("f" "o" "o")" the stringified sequence. But (apply str '("f" "o" "o")) returns "foo", as expected in the initial question. Angel "Java" Lopez http://www.ajlopez.com http://twitter.com/ajlopez On Mon, Jun 28, 2010 at 3:31 PM, Savanni D'Gerinel <sava...@alyra.org>wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Along those lines, why is the apply necessary? > > More clearly, and I encountered this with a different block of code > earlier today, repeat returns a lazy sequence. Str does nothing to > evaluate that sequences, so (str (repeat ...)) returns a lazy sequence. > > Why does (apply str (repeat ...)) evaluate the sequence? The > documentation for apply does not mention that it will do so. > > Generally I am having a lot of trouble with sequences because I am never > clear on when a lazy sequence will be evaluated strictly. > > - -- > Savanni > > > On 06/28/2010 01:14 PM, Nurullah Akkaya wrote: > > Hi José, > > > > user=> (apply str (repeat 3 "code")) > > "codecodecode" > > > > will give you what you want, > > if we break it down, > > > > user=> (repeat 3 "code") > > ("code" "code" "code") > > > > repeat will give you a sequence of xs, > > since you don't know the length of the > > sequence at compile time we apply str > > to the sequence > > > > (apply str '("code" "code" "code")) > > > > which basically expands to, > > > > (str "code" "code" "code") > > > > then you get, > > > > "codecodecode" > > > > > > -- > > Nurullah Akkaya > > http://nakkaya.com > > > > > > > > 2010/6/27 José Luis Romero <tangu...@gmail.com>: > >> Hi! I am learning the core of clojure, and so far, I am loving it. But > >> I am not a lisp programmer (python, java, among others), but never > >> functional programming. I am practicing with codingbat.com, coding the > >> exercises on clojure. I am stuck with loops. I want to concatenate n > >> times a string. For example, given the parameters 3 and "code" the > >> output will be "codecodecode". How can I do a loop in order to get > >> this output. > >> > >> I know that this is a very newb question, any help will be > >> appreciated. > >> > >> -- > >> 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<clojure%2bunsubscr...@googlegroups.com> > >> For more options, visit this group at > >> http://groups.google.com/group/clojure?hl=en > >> > > > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.10 (GNU/Linux) > Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ > > iEYEARECAAYFAkwo6pEACgkQZIuDAZ4avD+JiQCgkiZg4ADytAL7ujIjq3S/73Up > msoAn0Z28vIwjTUXZb9bAN5o8LyDBUja > =I0Ni > -----END PGP SIGNATURE----- > > -- > 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<clojure%2bunsubscr...@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 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