actually 82, you missed  a ) at the end.

should be
(map #(str "Happy Birthday " %) (assoc (vec (replicate 4 "To You")) 2
"Dear XXX"))

my other concern is what the article is discussing, namely making this
readable to other people who don't know clojure.

I don't know how readable it is to java people who don't know clojure.

On Fri, Sep 18, 2009 at 12:14 AM, David Nolen <dnolen.li...@gmail.com> wrote:
> Your basic approach seems sound:
> (map #(str "Happy Birthday " %) (assoc (vec (replicate 4 "To You")) 2 "Dear
> XXX") -> 81 chars including white space
> for(int i=0;i<4;i++){System.out.println("Happy Birthday "+(i==2?"Dear
> XXX":"To You"));}) -> 88 chars
> (1 to 4).map{i=>"Happy Birthday %s".format(if(i==3)"Dear XXX"else"To
> You")}.foreach{println(_)} -> 95 chars
> Anyone have a shorter version? :)
> On Thu, Sep 17, 2009 at 11:53 PM, Wilson MacGyver <wmacgy...@gmail.com>
> wrote:
>>
>> This blog post got me thinking.
>> http://www.artima.com/weblogs/viewpost.jsp?thread=268561
>>
>> Basically it contains both a Java one liner and Scala one liner.
>>
>> Java:
>> for(int i=0; i<4; i++) { System.out.println("Happy Birthday " + (i==2
>> ? "Dear XXX" : "To You")); }
>>
>> Scala:
>> (1 to 4).map { i => "Happy Birthday %s".format(if (i == 3) "Dear XXX"
>> else "To You") }.foreach { println(_) }
>>
>> the goal is to generate
>>
>> Happy Birthday To You
>> Happy Birthday To You
>> Happy Birthday Dear XXX
>> Happy Birthday To You
>>
>>
>> I started thinking about how to do this in clojure. My first reaction was
>> to
>> think of the sentences as two sequences. Uses replicate to generate
>> them, and map str to join them from two collections.
>>
>> ie, (map str (replicate 4 "Happy Birthday ")...
>>
>> Is there a more "clojure" way to do it?
>> because using replicate to generate the 2nd sequence seem like cheating.
>> ie, replicate 2 "To You", 1 "Dear XXX", and then "To You" again.
>>
>>
>>
>> --
>> Omnem crede diem tibi diluxisse supremum.
>>
>>
>
>
> >
>



-- 
Omnem crede diem tibi diluxisse supremum.

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to