Re: [emacs over ssh limitations]

2012-08-29 Thread Alan Busby
On Thu, Aug 30, 2012 at 1:13 AM, Phil Hagelberg  wrote:
> Alan Busby  writes:
>> To support what Tim said, after killing an afternoon I got iTerm2 from
>> OSX to play nice with an Emacs in gnu screen on a remote Linux host.
>>
>> All keys and combos were working by the end. I don't have my laptop
>> near me to check now, but I think making *EVERY* setting along the
>> path as "xterm" is what finally did the trick.
>
> Doesn't setting TERM=xterm restrict you to 8 colors? I have to use 
> TERM=xterm-256color.

Evidently it does.
I guess that's a trade off then, but I'm curious what you're doing
that requires all those colors in a terminal?
If it's not pink text with a purple background, I think pics would be
beneficial. ;)

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


Re: how to translate this snippet from Scheme to Clojure

2012-08-29 Thread Baishampayan Ghose
Something like this?

(defn A []
  1)

(defn A []
  (fn [] 1))

Regards,
BG

On Thu, Aug 30, 2012 at 10:41 AM, Andy Coolware  wrote:
>> (define (A) 1)
> #
>> A
> #
>> (A)
> 1
>> (define ((A)) 1)
> #
>> A
> #
>> (A)
> #
>> ((A))
> 1
>
> Just wondering ...
>
> Andy
>
> --
> 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



-- 
Baishampayan Ghose
b.ghose at gmail.com

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


how to translate this snippet from Scheme to Clojure

2012-08-29 Thread Andy Coolware
> (define (A) 1)
#
> A
#
> (A)
1
> (define ((A)) 1)
#
> A
#
> (A)
#
> ((A))
1

Just wondering ...

Andy

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


Re: (merge) => nil

2012-08-29 Thread dmirylenka
> It's not a unit if you're using `if-let` and expect nil to represent 
failure and {} to represent a success that establishes no bindings. 

You mean, something like this, right? :

(if-let [{:keys [a]} {}] "Hi"); => "Hi"

(if-let [{:keys [a]} nil] "Hi"); => nil

Interesting example!

In my own code, however, I wouldn't use a collection (in this case, a map) 
as a test expression inside if (which happens here under the hood).
Exactly because in many cases empty sequence is equivalent to nil.
Instead, I would explicitly test for emptiness: (if (seq my-map) this that).

On Thursday, August 30, 2012 12:46:05 AM UTC+2, Brian Marick wrote:
>
>
> On Aug 29, 2012, at 2:08 PM, dmirylenka wrote: 
>
> > I would say, they treat nil as an empty sequence, which makes nil, 
> effectively, a unit: 
> > 
> > (assoc nil :a :b) ; => {:a :b} 
> > (merge nil {:a :b}) ; => {:a :b} 
>
> It's not a unit if you're using `if-let` and expect nil to represent 
> failure and {} to represent a success that establishes no bindings. 
>
> - 
> Brian Marick, Artisanal Labrador 
> Contract programming in Ruby and Clojure 
> Occasional consulting on Agile 
>
>
>

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

Re: (merge) => nil

2012-08-29 Thread dmirylenka
I sort of remember Rich Hickey say this, but I am not sure :).

As far as I see it, it is generally better to use more specific functions, 
as they make the assumptions about the types of the arguments more 
explicit. Sometimes they are also more efficient (but probably not in this 
case).

So, for working with maps assoc is more preferable, as it is specific to 
maps (at least for non-integer keys).

Polymorphic functions are nice when the concrete argument type is not 
important (e.g. list vs. vector).
But in practice very few code is not going care whether it's working with 
map or a sequence - so conj is kind of overly polymorphic.
This extra polymorphism can be confusing, for instance, if one tries to 
figure out the type of the following expression:
(conj something [1 2]).

contains? is maybe another example of generic function that has created 
confusion.

That's my understanding ) .

On Thursday, August 30, 2012 12:05:48 AM UTC+2, Meikel Brandmeyer (kotarak) 
wrote:
>
> Hi, 
>
> Am 29.08.2012 um 23:38 schrieb dmirylenka: 
>
> > Although, code working with maps shouldn't use conj anyway. 
>
> Why? 
>
> Kind regards 
> Meikel 
>
>

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

Re: (merge) => nil

2012-08-29 Thread Brian Marick

On Aug 29, 2012, at 2:08 PM, dmirylenka wrote:

> I would say, they treat nil as an empty sequence, which makes nil, 
> effectively, a unit:
> 
> (assoc nil :a :b) ; => {:a :b}
> (merge nil {:a :b}) ; => {:a :b}

It's not a unit if you're using `if-let` and expect nil to represent failure 
and {} to represent a success that establishes no bindings.

-
Brian Marick, Artisanal Labrador
Contract programming in Ruby and Clojure
Occasional consulting on Agile


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


Re: (merge) => nil

2012-08-29 Thread Meikel Brandmeyer
Hi,

Am 29.08.2012 um 23:38 schrieb dmirylenka:

> Although, code working with maps shouldn't use conj anyway.

Why?

Kind regards
Meikel



signature.asc
Description: Message signed with OpenPGP using GPGMail


Re: another why: (flatten #{:a :b}) => () ???

2012-08-29 Thread dmirylenka
Thanks for the elaborate answer!
It also clears some other doubts I had regarding the core functions.

On Wednesday, August 29, 2012 11:34:56 PM UTC+2, miner wrote:
>
> flatten has been discussed before: 
>
> https://groups.google.com/forum/?fromgroups=#!topic/clojure/ye70iNJ73zc 
>
> See also CLJ-400, but it looks like no patch was submitted. 
>
> http://dev.clojure.org/jira/browse/CLJ-400 
>
> I think the general policy for Clojure is that the core functions of 
> course should work as documented, but they do not necessarily handle 
> undocumented edge cases.  So if you use the wrong kinds of arguments, the 
> implementation does not have to detect your error -- it might throw or just 
> give you non-useful results.  There's a trade-off among ease of 
> implementation, performance and programmer friendliness.  If it's a common 
> mistake, maybe an assertion is warranted.  If I remember correctly, Rich 
> Hickey suggested that someday there might be an option to run a stricter 
> version of Clojure (with lots of assertions) during development, and a 
> faster version with less checking in production. 
>
> Regarding flatten in particular, I would like it to be faster and to do a 
> bit more to help the careless programmer.  I was all set to submit a patch 
> condemning the elegant but slow implementation when I noticed that the new 
> "reducers" version of flatten in 1.5 alphas is amazingly fast.  So that 
> looks like the way to go. 
>
>
>
> On Aug 29, 2012, at 3:47 PM, dmirylenka > 
> wrote: 
>
> > Calling flatten on anything that is not 'sequential?' returns an empty 
> sequence: 
> > 
> > (flatten 1); => () 
> > (flatten "Hi"); => () 
> > 
> > With sets if feels somewhat strange: 
> > 
> > (flatten #{#{:a} #{:b :c}}); => () 
> > 
> > For some reason I expected #{#{:a} #{:b :c}} to equal #{:a :b :c}. 
> > 
> > Ok, the docstring says: "Takes any nested combination of sequential 
> things...", and sets are not sequential... 
> > 
> > But then, why 
> > 
> > (reduce + (flatten #{1 2})); => 0 
> > (r/reduce + (r/flatten #{1 2})); => 3 ? 
>
>

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

Re: 6 December 2012 - London - Clojure eXchange - Call for Presentations

2012-08-29 Thread Bruce Durling
Fellow Clojurians!

I'm thinking that almost 2 months might be enough time for everyone to
submit their talk ides for the 2012 Clojure eXchange at Skills Matter
in December. I'd like to close the call for papers at the end of this
weekend. So if you have any ideas submit them here:

https://docs.google.com/a/otfrom.com/spreadsheet/viewform?formkey=dFhDYTRYaGg3MHNmS3hCTHVvQUxUaGc6MQ

before 23:59:59 on 2 September.

If you'd like to come to the event the sign up page is here:

http://skillsmatter.com/event/clojure/clojure-exchange-2012

I hope to se you all there!

cheers,
Bruce

On Tue, Jul 3, 2012 at 11:56 AM, Bruce Durling  wrote:
> Fellow Clojurians,
>
> Following on from the brilliant community in solidarity success of
> last December's Clojure eXchange and this May's fantastic EuroClojure,
> I'd like to announce the call for presentations for the 2012 Clojure
> eXchange in London.
>
> The event will be hosted by Skills Matter again on 6 December 2012.
>
> The form to fill in is here:
>
> https://docs.google.com/spreadsheet/viewform?formkey=dFhDYTRYaGg3MHNmS3hCTHVvQUxUaGc6MQ
>
> I'm looking forward to seeing the submissions and hope to see you all there!
>
> cheers,
> Bruce
> Programme Manager
> 2012 Clojure eXchange
>
> --
> @otfrom | CTO & co-founder @MastodonC | mastodonc.com



-- 
@otfrom | CTO & co-founder @MastodonC | mastodonc.com

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


Re: European conferences in 2012?

2012-08-29 Thread Bruce Durling
There is the Clojure eXchange at Skills Matter in London on 6 December.

http://skillsmatter.com/event/scala/clojure-exchange-2012

cheers,
Bruce

On Wed, Aug 29, 2012 at 2:08 PM, Jonathan Lange  wrote:
> Hello everyone,
>
> Just wondering if there are any conferences in Europe coming up in the
> remainder of the year that would be of interest to someone interested
> in Clojure?
>
> If there's a web page I should have looked before posting, would very
> much appreciate the pointer.
>
> Thanks,
> jml
>
> --
> 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



-- 
@otfrom | CTO & co-founder @MastodonC | mastodonc.com

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


Re: assoc with uneven arguments

2012-08-29 Thread Andy Fingerhut
On Aug 29, 2012, at 12:17 PM, Chas Emerick wrote:

> On Aug 29, 2012, at 2:20 PM, Ambrose Bonnaire-Sergeant wrote:
> 
>> I think assoc should throw an error when applied with uneven arguments.
>> 
>> Currently, the "missing" value is just replaced with nil.
>> 
>> (assoc {} :a 1 :b)
>> ;=> {:a 1, :b nil}
>> 
>> Thoughts?
> 
> Yes, please.  That's just wrong.
> 
> - Chas

http://dev.clojure.org/jira/browse/CLJ-1052

Vote for it and/or comment on it, if you are interested.

Andy

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


Re: European conferences in 2012?

2012-08-29 Thread Martin Dow
A 1 day event in Amsterdam on 27th Oct was announced here recently:

  https://groups.google.com/forum/?fromgroups=#!topic/clojure/rEBJK4KkdNo


Martin.

On Wednesday, 29 August 2012 14:08:37 UTC+1, Jonathan Lange wrote:
>
> Hello everyone, 
>
> Just wondering if there are any conferences in Europe coming up in the 
> remainder of the year that would be of interest to someone interested 
> in Clojure? 
>
> If there's a web page I should have looked before posting, would very 
> much appreciate the pointer. 
>
> Thanks, 
> jml 
>

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

Re: (merge) => nil

2012-08-29 Thread dmirylenka
Hm.. There seem to be cases when nil is not equivalent to {} when working 
with maps:

(conj {} [:a :b]); => {:a :b}
(conj nil [:a :b]); => ([:a :b])

Although, code working with maps shouldn't use conj anyway.

Any other examples?

On Wednesday, August 29, 2012 9:08:07 PM UTC+2, dmirylenka wrote:
>
> I would say, they treat nil as an empty sequence, which makes nil, 
> effectively, a unit:
>
> (assoc nil :a :b) ; => {:a :b}
> (merge nil {:a :b}) ; => {:a :b}
>
> etc.
>
> On Wednesday, August 29, 2012 7:36:26 PM UTC+2, Moritz Ulrich wrote:
>>
>> This isn't true in Clojure: http://clojure.org/lisps
>>
>> However, most functions treat an empty seq as nil because they call `seq' 
>> on their arguments.
>>
>> On Wed, Aug 29, 2012 at 6:41 PM, Joop Kiefte  wrote:
>>
>>> An empty sequence is equal to nil.
>>>
>>> 2012/8/29 Ambrose Bonnaire-Sergeant :
>>> > My guess is that `merge` has an invariant "if all args are nil, return 
>>> nil",
>>> > making calls to `seq` "contagious" from args to return value.
>>> >
>>> > => (merge (seq {}) (seq {}))
>>> > nil
>>> >
>>> > Just a guess though.
>>> >
>>> > Thanks,
>>> > Ambrose
>>> >
>>> > On Thu, Aug 30, 2012 at 12:18 AM, Brian Marick  
>>> wrote:
>>> >>
>>> >> Why does `(merge)` return nil? I would have expected it to return the 
>>> unit
>>> >> ({}) by analogy with things like this:
>>> >>
>>> >> (+) => 0
>>> >> (*) => 1
>>> >>
>>> >> -
>>> >> Brian Marick, Artisanal Labrador
>>> >> Contract programming in Ruby and Clojure
>>> >> Occasional consulting on Agile
>>> >>
>>> >>
>>> >> --
>>> >> You received this message because you are subscribed to the Google
>>> >> Groups "Clojure" group.
>>> >> To post to this group, send email to clo...@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+u...@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 clo...@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+u...@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 clo...@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+u...@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

Re: another why: (flatten #{:a :b}) => () ???

2012-08-29 Thread Steve Miner
flatten has been discussed before:

https://groups.google.com/forum/?fromgroups=#!topic/clojure/ye70iNJ73zc

See also CLJ-400, but it looks like no patch was submitted.

http://dev.clojure.org/jira/browse/CLJ-400

I think the general policy for Clojure is that the core functions of course 
should work as documented, but they do not necessarily handle undocumented edge 
cases.  So if you use the wrong kinds of arguments, the implementation does not 
have to detect your error -- it might throw or just give you non-useful 
results.  There's a trade-off among ease of implementation, performance and 
programmer friendliness.  If it's a common mistake, maybe an assertion is 
warranted.  If I remember correctly, Rich Hickey suggested that someday there 
might be an option to run a stricter version of Clojure (with lots of 
assertions) during development, and a faster version with less checking in 
production.

Regarding flatten in particular, I would like it to be faster and to do a bit 
more to help the careless programmer.  I was all set to submit a patch 
condemning the elegant but slow implementation when I noticed that the new 
"reducers" version of flatten in 1.5 alphas is amazingly fast.  So that looks 
like the way to go.



On Aug 29, 2012, at 3:47 PM, dmirylenka  wrote:

> Calling flatten on anything that is not 'sequential?' returns an empty 
> sequence:
> 
> (flatten 1); => () 
> (flatten "Hi"); => () 
> 
> With sets if feels somewhat strange:
> 
> (flatten #{#{:a} #{:b :c}}); => ()
> 
> For some reason I expected #{#{:a} #{:b :c}} to equal #{:a :b :c}.
> 
> Ok, the docstring says: "Takes any nested combination of sequential 
> things...", and sets are not sequential...
> 
> But then, why
> 
> (reduce + (flatten #{1 2})); => 0
> (r/reduce + (r/flatten #{1 2})); => 3 ?

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


Re: Will this cause stack overflow?

2012-08-29 Thread Nate Young
On Wed, Aug 29, 2012 at 4:03 PM, Erlis Vidal  wrote:
> If yes, how can I do a recursive call when passing the function as a
> parameter to another function, like in this case with mapcat?
You could use `lazy-seq`. Something like this:

(defn my-flatten [x]
  (lazy-seq
(if (coll? x)
  (mapcat my-flatten x)
  [x])))

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


Re: European conferences in 2012?

2012-08-29 Thread David Nolen
On Wed, Aug 29, 2012 at 9:08 AM, Jonathan Lange  wrote:
> Hello everyone,
>
> Just wondering if there are any conferences in Europe coming up in the
> remainder of the year that would be of interest to someone interested
> in Clojure?
>
> If there's a web page I should have looked before posting, would very
> much appreciate the pointer.
>
> Thanks,
> jml

http://www.techmeshconf.com

I'm biased but this looks like fun ;)

David

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


Re: European conferences in 2012?

2012-08-29 Thread Marco Abis
> We will probably have another EuroClojure next year I guess, given the
> success of the first one ...

that's the plan (and in a different country)

-- 
Marco Abis

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


Re: Will this cause stack overflow?

2012-08-29 Thread Ben Wolfson
Yes:

user> (defn my-flatten [x]
  (if (coll? x) (mapcat my-flatten x) [x]))
#'user/my-flatten
user> (my-flatten (take 4000 (iterate vector [])))

(stack overflow)

On Wed, Aug 29, 2012 at 2:03 PM, Erlis Vidal  wrote:
> Hi group,
>
> Will this recursion cause stack overflow?
>
> (defn my-flatten [x]
>   (if (coll? x) (mapcat my-flatten x) [x]))
>
> If yes, how can I do a recursive call when passing the function as a
> parameter to another function, like in this case with mapcat?
>
> Thanks,
> Erlis
>
> --
> 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



-- 
Ben Wolfson
"Human kind has used its intelligence to vary the flavour of drinks,
which may be sweet, aromatic, fermented or spirit-based. ... Family
and social life also offer numerous other occasions to consume drinks
for pleasure." [Larousse, "Drink" entry]

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


Will this cause stack overflow?

2012-08-29 Thread Erlis Vidal
Hi group,

Will this recursion cause stack overflow?

(defn my-flatten [x]
  (if (coll? x) (mapcat my-flatten x) [x]))

If yes, how can I do a recursive call when passing the function as a
parameter to another function, like in this case with mapcat?

Thanks,
Erlis

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

Re: European conferences in 2012?

2012-08-29 Thread Denis Labaye
On Wed, Aug 29, 2012 at 3:08 PM, Jonathan Lange  wrote:

> Hello everyone,
>
> Just wondering if there are any conferences in Europe coming up in the
> remainder of the year that would be of interest to someone interested
> in Clojure?
>

I don't know, but I am interested...

We will probably have another EuroClojure next year I guess, given the
success of the first one ...


>
> If there's a web page I should have looked before posting, would very
> much appreciate the pointer.
>
> Thanks,
> jml
>
> --
> 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 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

ANN: Clip-test (testing) and Quiddity (custom eval) for Clojure and ClojureScript

2012-08-29 Thread Shantanu Kumar
Hi,

I am happy to announce about two (early-stage yet functional)
libraries:

1. Clip-test v0.1.0: https://github.com/kumarshantanu/clip-test

2. Quiddity v0.1.0: https://github.com/kumarshantanu/quiddity

Clip-test is a tiny subset of `clojure.test` that works for both
Clojure and ClojureScript. Quiddity is a custom eval library for
Clojure and ClojureScript. More details are at their respective Github
repos. I factored these two libraries out from my work-in-progress
Basil templating library: https://github.com/kumarshantanu/basil

The intention of the announcement is (1) I thought others may find it
useful, and (2) to get feedback. So, please let me know what you
think.

Shantanu

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


Re: (merge) => nil

2012-08-29 Thread Steve Miner

On Aug 29, 2012, at 12:18 PM, Brian Marick  wrote:

> Why does `(merge)` return nil? I would have expected it to return the unit 
> ({})

I agree with your intuition -- I expected an empty map.  However, the doc says 
"Returns a map that consists of the rest of the maps conj-ed onto the first" 
which implies that correct usage needs at least one map.  As an aside, it 
doesn't say anything about nil arguments, but they seem to be supported as well 
as maps.  My guess, based on a quick look at some of the commits, is that 
allowing nil as an argument was convenient for some metadata manipulations, and 
the edge case of no-arguments wasn't considered important.  It looks like it 
would be easy to fix and probably wouldn't break any code since no one should 
be depending on the undocumented nullary behavior.

Steve Miner
stevemi...@gmail.com



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


Re: [emacs over ssh limitations]

2012-08-29 Thread Denis Labaye
On Tue, Aug 28, 2012 at 2:44 AM, Stuart Sierra
wrote:

> It's easy enough to test: fire up a small EC2 instance and use Emacs over
> an SSH+tmux session. You could also try using your own local Emacs that way
> by SSH'ing to localhost.


> In my experience, commands don't work in a terminal if they use modifier
> keys (Control, Meta, Shift) AND non-letter keys (arrows, ENTER, some
> punctuation). I assume it has something to do with how those combinations
> get encoded for the terminal emulator.
>

I never noticed the problem myself.

I tried to reproduce it with a local VM: works fine for the keystrokes I'm
using.

The friend which has witnessed it is on holidays, I'll try to reproduce
when he's back.


>
> You can always work around it with M-x, or by rebinding the command to a
> different key. It's mildly annoying, but not a showstopper.
>
> One consistently annoying thing is that PageUp, PageDown, and Delete don't
> work in clojure-mode buffers with Paredit in Emacs in a terminal. They
> insert weird characters like ^[ instead. I would very much like to have a
> fix for that!
>
> -S
>
>
>  --
> 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 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

another why: (flatten #{:a :b}) => () ???

2012-08-29 Thread dmirylenka
Calling flatten on anything that is not 'sequential?' returns an empty 
sequence:

(flatten 1); => () 
(flatten "Hi"); => () 

With sets if feels somewhat strange:

(flatten #{#{:a} #{:b :c}}); => ()

For some reason I expected #{#{:a} #{:b :c}} to equal #{:a :b :c}.

Ok, the docstring says: "Takes any nested combination of sequential 
things...", and sets are not sequential...

But then, why

(reduce + (flatten #{1 2})); => 0
(r/reduce + (r/flatten #{1 2})); => 3 ?

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

Re: assoc with uneven arguments

2012-08-29 Thread Chas Emerick
On Aug 29, 2012, at 2:20 PM, Ambrose Bonnaire-Sergeant wrote:

> I think assoc should throw an error when applied with uneven arguments.
> 
> Currently, the "missing" value is just replaced with nil.
> 
> (assoc {} :a 1 :b)
> ;=> {:a 1, :b nil}
> 
> Thoughts?

Yes, please.  That's just wrong.

- Chas

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


Re: (merge) => nil

2012-08-29 Thread dmirylenka
I would say, they treat nil as an empty sequence, which makes nil, 
effectively, a unit:

(assoc nil :a :b) ; => {:a :b}
(merge nil {:a :b}) ; => {:a :b}

etc.

On Wednesday, August 29, 2012 7:36:26 PM UTC+2, Moritz Ulrich wrote:
>
> This isn't true in Clojure: http://clojure.org/lisps
>
> However, most functions treat an empty seq as nil because they call `seq' 
> on their arguments.
>
> On Wed, Aug 29, 2012 at 6:41 PM, Joop Kiefte 
> > wrote:
>
>> An empty sequence is equal to nil.
>>
>> 2012/8/29 Ambrose Bonnaire-Sergeant 
>> >:
>> > My guess is that `merge` has an invariant "if all args are nil, return 
>> nil",
>> > making calls to `seq` "contagious" from args to return value.
>> >
>> > => (merge (seq {}) (seq {}))
>> > nil
>> >
>> > Just a guess though.
>> >
>> > Thanks,
>> > Ambrose
>> >
>> > On Thu, Aug 30, 2012 at 12:18 AM, Brian Marick 
>> > > 
>> wrote:
>> >>
>> >> Why does `(merge)` return nil? I would have expected it to return the 
>> unit
>> >> ({}) by analogy with things like this:
>> >>
>> >> (+) => 0
>> >> (*) => 1
>> >>
>> >> -
>> >> Brian Marick, Artisanal Labrador
>> >> Contract programming in Ruby and Clojure
>> >> Occasional consulting on Agile
>> >>
>> >>
>> >> --
>> >> You received this message because you are subscribed to the Google
>> >> Groups "Clojure" group.
>> >> To post to this group, send email to clo...@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+u...@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 clo...@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+u...@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 clo...@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+u...@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

Re: Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread Jerry
very good article for beginners like me.

thanks for sharing.
On Aug 29, 2012 4:38 PM, "Evan Mezeske"  wrote:

> I finally got around to writing the first installment in what is going to
> be a series of articles about my experiences with building a commercial web
> app in Clojure and ClojureScript:
>
> http://blog.mezeske.com/?p=552
>
> Sorry if the first article doesn't have enough meaty technical details (or
> code).  Hopefully the next couple of installments will have more detail!
>
> -Evan
>
> --
> 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 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

Re: Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread Jonas


On Wednesday, August 29, 2012 8:29:05 PM UTC+3, Evan Mezeske wrote:
>
> On Wednesday, August 29, 2012 6:10:59 AM UTC-7, Stathis Sideris wrote:
>>
>> Nice post, thanks. Did you write the the geometry utilities yourself?
>
>
> Yeah, I did.  That code is pretty application-specific.  It covers things 
> like "if a lab-bench desk with two chairs is rotated, where do the seats 
> end up" and basic stuff like that.  So, it's nothing too fancy, although it 
> was a little tricky to get it right (which made sharing it all the better).
>

Great post! I'm already looking forward to the next post,

I've got a similar project starting where I need to move/rotate/drag/drop 
graphical objects so I was wondering if you built your app on SVG, Canvas 
or something else? I'm leaning towards SVG (maybe via the Raphael.js 
library) but I'd love to know what path you took!

Jonas

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

Where can I find Selenium, Meets clojure talk?

2012-08-29 Thread Mayank Jain
Hi,
I am looking for the video for this talk : Selenium, Meets clojure.
By Andy Kriger 

Clojure is a general-purpose LISP dialect that targets the Java Virtual 
Machine (JVM), the Common Language Runtime (CLR), and JavaScript (via 
ClojureScript) . Using the clj-webdriver library and the Read-Eval-Print 
loop (REPL), we can rapidly build browser tests for web applications. We 
will explore this vibrant space, looking at how to use clj-webdriver, how 
to combine the power of Clojure and the power of Selenium, and how to setup 
a Clojure/Selenium testing workflow.
Link : http://www.seleniumconf.org/speakers/

Unable to find this talk online. It'll be helpful to see how others use 
clj-webdriver. Any ideas? Thanks.

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

Re: European conferences in 2012?

2012-08-29 Thread Gustavo Brunoro
Hi Jonathan,

There's this page for listing events:
http://dev.clojure.org/display/community/Clojure+Events

Cheers,
Gustavo

2012/8/29 Jonathan Lange 

> Hello everyone,
>
> Just wondering if there are any conferences in Europe coming up in the
> remainder of the year that would be of interest to someone interested
> in Clojure?
>
> If there's a web page I should have looked before posting, would very
> much appreciate the pointer.
>
> Thanks,
> jml
>
> --
> 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 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

assoc with uneven arguments

2012-08-29 Thread Ambrose Bonnaire-Sergeant
I think assoc should throw an error when applied with uneven arguments.

Currently, the "missing" value is just replaced with nil.

(assoc {} :a 1 :b)
;=> {:a 1, :b nil}

Thoughts?

Thanks,
Ambrose

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

European conferences in 2012?

2012-08-29 Thread Jonathan Lange
Hello everyone,

Just wondering if there are any conferences in Europe coming up in the
remainder of the year that would be of interest to someone interested
in Clojure?

If there's a web page I should have looked before posting, would very
much appreciate the pointer.

Thanks,
jml

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


Re: (merge) => nil

2012-08-29 Thread Ben Wolfson
On Wed, Aug 29, 2012 at 9:41 AM, Joop Kiefte  wrote:
> An empty sequence is equal to nil.

How so?

user> (some #(= % nil) ['() [] {}])
nil

-- 
Ben Wolfson
"Human kind has used its intelligence to vary the flavour of drinks,
which may be sweet, aromatic, fermented or spirit-based. ... Family
and social life also offer numerous other occasions to consume drinks
for pleasure." [Larousse, "Drink" entry]

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


Re: (merge) => nil

2012-08-29 Thread Moritz Ulrich
This isn't true in Clojure: http://clojure.org/lisps

However, most functions treat an empty seq as nil because they call `seq'
on their arguments.

On Wed, Aug 29, 2012 at 6:41 PM, Joop Kiefte  wrote:

> An empty sequence is equal to nil.
>
> 2012/8/29 Ambrose Bonnaire-Sergeant :
> > My guess is that `merge` has an invariant "if all args are nil, return
> nil",
> > making calls to `seq` "contagious" from args to return value.
> >
> > => (merge (seq {}) (seq {}))
> > nil
> >
> > Just a guess though.
> >
> > Thanks,
> > Ambrose
> >
> > On Thu, Aug 30, 2012 at 12:18 AM, Brian Marick 
> wrote:
> >>
> >> Why does `(merge)` return nil? I would have expected it to return the
> unit
> >> ({}) by analogy with things like this:
> >>
> >> (+) => 0
> >> (*) => 1
> >>
> >> -
> >> Brian Marick, Artisanal Labrador
> >> Contract programming in Ruby and Clojure
> >> Occasional consulting on Agile
> >>
> >>
> >> --
> >> 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 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 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 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

Re: Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread Evan Mezeske
On Wednesday, August 29, 2012 6:10:59 AM UTC-7, Stathis Sideris wrote:
>
> Nice post, thanks. Did you write the the geometry utilities yourself?


Yeah, I did.  That code is pretty application-specific.  It covers things 
like "if a lab-bench desk with two chairs is rotated, where do the seats 
end up" and basic stuff like that.  So, it's nothing too fancy, although it 
was a little tricky to get it right (which made sharing it all the better).

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

Re: Clojure group in DFW area

2012-08-29 Thread Alex Robbins
Ok, the meetup group is setup and the meetup location is confirmed.

http://www.meetup.com/DFW-Clojure/

I look forward to seeing everyone in person.

Alex

On Tue, Aug 28, 2012 at 1:00 PM, Alex Robbins
 wrote:
> Hey guys, sorry about the radio silence. Unofficially, it looks like
> the meetup will be:
>
> Third Wednesday of the month, 6:30-8:30 PM
> At Improving Enterprises in Addison, just off the Dallas North Tollway
>
> We are also working on getting a meetup group set up so that there
> will be a place to get info other than the global clojure mailing
> list.
>
> Chris or I will let you know when things are finalized.
>
> I'm excited to see a local clojure group forming!
>
> Alex
>
> On Tue, Aug 28, 2012 at 8:45 AM, gblack  wrote:
>> Did you guys settle on having more meetings? The Farmers Branch location
>> works for me.
>>
>> On Thursday, March 10, 2011 7:28:10 AM UTC-6, Alex Robbins wrote:
>>>
>>> Anyone else in the north Dallas area using/interested in Clojure? I'd
>>> love to get together.
>>>
>>> Alex
>>
>> --
>> 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 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


Re: (merge) => nil

2012-08-29 Thread Ambrose Bonnaire-Sergeant
On Thu, Aug 30, 2012 at 12:41 AM, Joop Kiefte  wrote:

> An empty sequence is equal to nil.
>

What do you mean?

=> (seq? ())
true
=> (= nil ())
false


>
> 2012/8/29 Ambrose Bonnaire-Sergeant :
> > My guess is that `merge` has an invariant "if all args are nil, return
> nil",
> > making calls to `seq` "contagious" from args to return value.
> >
> > => (merge (seq {}) (seq {}))
> > nil
> >
> > Just a guess though.
> >
> > Thanks,
> > Ambrose
> >
> > On Thu, Aug 30, 2012 at 12:18 AM, Brian Marick 
> wrote:
> >>
> >> Why does `(merge)` return nil? I would have expected it to return the
> unit
> >> ({}) by analogy with things like this:
> >>
> >> (+) => 0
> >> (*) => 1
> >>
> >> -
> >> Brian Marick, Artisanal Labrador
> >> Contract programming in Ruby and Clojure
> >> Occasional consulting on Agile
> >>
> >>
> >> --
> >> 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 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 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 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

Re: (merge) => nil

2012-08-29 Thread Joop Kiefte
An empty sequence is equal to nil.

2012/8/29 Ambrose Bonnaire-Sergeant :
> My guess is that `merge` has an invariant "if all args are nil, return nil",
> making calls to `seq` "contagious" from args to return value.
>
> => (merge (seq {}) (seq {}))
> nil
>
> Just a guess though.
>
> Thanks,
> Ambrose
>
> On Thu, Aug 30, 2012 at 12:18 AM, Brian Marick  wrote:
>>
>> Why does `(merge)` return nil? I would have expected it to return the unit
>> ({}) by analogy with things like this:
>>
>> (+) => 0
>> (*) => 1
>>
>> -
>> Brian Marick, Artisanal Labrador
>> Contract programming in Ruby and Clojure
>> Occasional consulting on Agile
>>
>>
>> --
>> 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 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 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


Re: (merge) => nil

2012-08-29 Thread Ambrose Bonnaire-Sergeant
My guess is that `merge` has an invariant "if all args are nil, return nil",
making calls to `seq` "contagious" from args to return value.

=> (merge (seq {}) (seq {}))
nil

Just a guess though.

Thanks,
Ambrose

On Thu, Aug 30, 2012 at 12:18 AM, Brian Marick  wrote:

> Why does `(merge)` return nil? I would have expected it to return the unit
> ({}) by analogy with things like this:
>
> (+) => 0
> (*) => 1
>
> -
> Brian Marick, Artisanal Labrador
> Contract programming in Ruby and Clojure
> Occasional consulting on Agile
>
>
> --
> 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 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

Re: (merge) => nil

2012-08-29 Thread Ulises
Don't know why nil is returned instead of {}, but

> (+) => 0
> (*) => 1

following that line of reasoning:

> (merge nil {:a 1})
{:a 1}
> (merge {} {:a 1})
{:a 1}

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


(merge) => nil

2012-08-29 Thread Brian Marick
Why does `(merge)` return nil? I would have expected it to return the unit ({}) 
by analogy with things like this:

(+) => 0
(*) => 1

-
Brian Marick, Artisanal Labrador
Contract programming in Ruby and Clojure
Occasional consulting on Agile


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


Re: [emacs over ssh limitations]

2012-08-29 Thread Phil Hagelberg
Alan Busby  writes:

> To support what Tim said, after killing an afternoon I got iTerm2 from
> OSX to play nice with an Emacs in gnu screen on a remote Linux host.
>
> All keys and combos were working by the end. I don't have my laptop
> near me to check now, but I think making *EVERY* setting along the
> path as "xterm" is what finally did the trick.

Doesn't setting TERM=xterm restrict you to 8 colors? I have to use 
TERM=xterm-256color.

-Phil

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


ANN Monger 1.2.0

2012-08-29 Thread Michael Klishin
Monger is an idiomatic Clojure MongoDB driver
for a more civilized age.
It has batteries included, offers powerful expressive query DSL, strives to
support every MongoDB 2.0+ feature and has sane defaults.

Monger 1.2 focus is on a number of small improvements and making sure
Monger has good MongoDB 2.2 compatibility:

 * One bug fix
 * Support for low level connection options
 * Test coverage and more testing for many MongoDB 2.2 features
 * MongoDB Java driver upgraded to 2.9 which brings concurrency-related
improvements (fixes, reduced contention in the client)
 * monger.joda-time no longer has reflection warnings and will only try to
extend clojure.data.json protocols if clojure.data.json is actually
available
 * Clojure 1.4 is the new default. 1.3 is still supported and will be for a
while but Monger now depends on 1.4 unless your project.clj specifies a
different version.
 * Documentation guide improvements
 * API reference site

1.2.0 is a drop-in replacement for 1.1.x.

More detailed change log:
https://github.com/michaelklishin/monger/blob/1.2.x-stable/ChangeLog.md

News and releases are announced on Twitter: http://twitter.com/clojurewerkz

Documentation guides: http://clojuremongodb.info

API reference: http://reference.clojuremongodb.info
--
MK

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

Re: Destructuring can create structure..?

2012-08-29 Thread Douglas Orr
Cheers, Justin - I'd forgotten that (and just thought that vector-as-map 
destructuring was broken - but this would explain why it is different from 
other seqables.)

Doug


On Tuesday, August 28, 2012 3:12:43 PM UTC+1, Justin Kramer wrote:
>
> Vector-as-map destructuring makes sense when you consider that vectors are 
> associative: they map index to value.
>
> (let [{a 1 b 3 :as c} [:a 1 :b 2]] [a b c])
> => [1 2 [:a 1 :b 2]]
>
> Justin
>
> On Tuesday, August 28, 2012 8:30:58 AM UTC-4, Douglas Orr wrote:
>>
>> One possibly confusing titbit I came across recently relates to how 
>> Clojure handles destructuring of variable-length argument lists. The 
>> essence is that the destructuring form can appear to influence the 'shape' 
>> of the collection of arguments. Here is what I mean:
>>
>> take nothing off the head of the vector, then put all remaining elements 
>> into a vector c:
>>
>> user=> (let [[& [:as c]] [:one "one" :two "two"]] (seq c))
>> (:one "one" :two "two")
>>
>>
>> take nothing off the head of the vector, then put all remaining elements 
>> into a map c:
>>
>> user=> (let [[& {:as c}] [:one "one" :two "two"]] (seq c))
>> ([:one "one"] [:two "two"])
>>
>>
>> Notice how the structure of 'c' has changed due to the destructuring 
>> form, even though in both cases it refers to the whole collection. Digging 
>> down into this a bit, it looks like this depends on the type of the 
>> collection being destructured:
>>
>> user=> (let [{:as c} [:one "one" :two "two"]] (seq c))
>> (:one "one" :two "two")
>>
>> user=> (let [{:as c} (seq [:one "one" :two "two"])] (seq c))
>> ([:one "one"] [:two "two"])
>>
>>
>> I can see why this is necessary for multiple-args destructuring to work, 
>> but I think my small mind finds this 'automatic marshalling' of 
>> lists-or-seqs into maps a bit confusing. Maybe my only real problem is the 
>> destructuring of vectors as maps, which somewhat 'works' in the above 
>> example, but isn't really consistent. Any thoughts?
>>
>

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

Re: Can CLJS functions have metadata?

2012-08-29 Thread David Nolen
On Sat, Aug 25, 2012 at 6:18 PM, Timothy Baldridge  wrote:
>
>>> It's not currently supported. Ticket welcome. If you have ideas about
>>> a good approach that's even better. Part of the problem is that
>>> Clojure fns are just JS fns.
>>
>>
>
> Can't we just set the attribute on the function? This works under Chrome,
> not sure about other browsers:
>
> z = function(x) { return x;}
> function (x) { return x;}
> z(1)
> 1
> z.foo = 1
> 1
> z
> function (x) { return x;}
> z.foo
> 1
> z(1)
> 1
>
>
> This is the approach I took for clojure-py. You can either provide a .meta()
> method that will be called to get the metadata, or you can put ._meta on
> your object and that attribute will be set/retrieved instead. Of course,
> this isn't immutable, but it would support meta and alter-meta.

Oops, actually the mutability is a showstopper. Looks like we need a
fn wrapper type which has the necessary extra field.

David

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


Re: `format` behavior on Clojure vs CLJS

2012-08-29 Thread Shantanu Kumar


On Aug 29, 7:04 pm, David Nolen  wrote:
> On Wed, Aug 29, 2012 at 7:07 AM, Moritz Ulrich  wrote:
>
> > Shantanu Kumar writes:
>
> >> Hi,
>
> >> I noticed that on the Clojure REPL, `format` works fine:
>
> >> user=> (format "foo%s" :s)
> >> "foo:s"
> >> user=> (format "foo%s" 's)
> >> "foos"
>
> >> However, on the CLJS REPL (Rhino), I get this:
>
> >> ClojureScript:cljs.user> (format "foo%s" :s)
> >> "foo 's"
> >> ClojureScript:cljs.user> (format "foo%s" 's)
> >> "foo 's"
>
> >> Wanted to first confirm this is a bug before filing a ticket.
>
> >> Shantanu
>
> > This seems like a bug to me. It's caused by an implementation detail of
> > ClojureScript (keywords and symbols are string starting with a specific
> > UTF8 byte sequence).
>
> > --
> > Moritz Ulrich
>
> Yep, a bug.

OK, I filed the bug: http://dev.clojure.org/jira/browse/CLJS-363

Screwed up the formatting though, and seems I can't edit the issue
anymore.

Shantanu

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


Re: Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread David Nolen
On Wed, Aug 29, 2012 at 4:38 AM, Evan Mezeske  wrote:
> I finally got around to writing the first installment in what is going to be
> a series of articles about my experiences with building a commercial web app
> in Clojure and ClojureScript:
>
> http://blog.mezeske.com/?p=552
>
> Sorry if the first article doesn't have enough meaty technical details (or
> code).  Hopefully the next couple of installments will have more detail!
>
> -Evan

Great post!

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


Re: `format` behavior on Clojure vs CLJS

2012-08-29 Thread David Nolen
On Wed, Aug 29, 2012 at 7:07 AM, Moritz Ulrich  wrote:
>
> Shantanu Kumar writes:
>
>> Hi,
>>
>> I noticed that on the Clojure REPL, `format` works fine:
>>
>> user=> (format "foo%s" :s)
>> "foo:s"
>> user=> (format "foo%s" 's)
>> "foos"
>>
>> However, on the CLJS REPL (Rhino), I get this:
>>
>> ClojureScript:cljs.user> (format "foo%s" :s)
>> "foo���'s"
>> ClojureScript:cljs.user> (format "foo%s" 's)
>> "foo���'s"
>>
>> Wanted to first confirm this is a bug before filing a ticket.
>>
>> Shantanu
>
> This seems like a bug to me. It's caused by an implementation detail of
> ClojureScript (keywords and symbols are string starting with a specific
> UTF8 byte sequence).
>
> --
> Moritz Ulrich

Yep, a bug.

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


Re: Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread Stathis Sideris
Nice post, thanks. Did you write the the geometry utilities yourself?

On Wednesday, 29 August 2012 09:38:06 UTC+1, Evan Mezeske wrote:
>
> I finally got around to writing the first installment in what is going to 
> be a series of articles about my experiences with building a commercial web 
> app in Clojure and ClojureScript:
>
> http://blog.mezeske.com/?p=552
>
> Sorry if the first article doesn't have enough meaty technical details (or 
> code).  Hopefully the next couple of installments will have more detail!
>
> -Evan
>

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

ANN: Friend 0.1.0 released (web authentication/authorization library)

2012-08-29 Thread Chas Emerick
I released [com.cemerick/friend "0.1.0"] to Clojars last night.  Friend is an 
extensible authentication and authorization library for Clojure Ring web 
applications and services:

https://github.com/cemerick/friend

This release does make some breaking changes, though all unfortunately 
necessary.  The changelog since the 0.0.9 release is here:

https://github.com/cemerick/friend/blob/master/CHANGES.md

While I'd say there are now "many" sites and services in production using 
Friend for user authentication and authorization, (including Clojars, /ht to 
Nelson Morris on that count), the caveats in the Friend main README still 
apply, including:

> ...proceed happily, but mindfully. Only with your help will we have
> a widely-tested Ring application security library.

Please file issues and otherwise complain loudly when you hit problems. :-)

Cheers,

- Chas

--
http://cemerick.com
[Clojure Programming from O'Reilly](http://www.clojurebook.com)

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


Talks! Dojos! Roll up! Roll up!

2012-08-29 Thread Bruce Durling
My Fellow Clojurians!

Roll up! Roll up!

As a part of our ongoing regular schedule of dojos and talks I'd like
to invite you all to our events happening in the first half of
September in London

Come to Skills Matter on Tuesday 4 September to hear lightning talks
from Neale Swinnerton on the clojure STM and Andrew Cowper on
programming clojure with org-babel. And on the same night hear a talk
from Phil Potter on Persistent Data Structures in clojure. The sign up
page and more details are here:

http://skillsmatter.com/event/clojure/london-clojurians-user-group-1487


And then on Tuesday 11 September we'll be having another clojure dojo,
this time hosted by Forward. Details and sign up here:

http://mid-september-2012-ldnclj-dojo.eventbrite.co.uk/

I hope to see you all there!

We run dojos and talks every month and try to make the dates regular
to help people come and visit us. We hope you can make it to this or
future events. We currently have a talk on the 1st Tuesday of the
month, every month except January and 2 dojos per month, on mid-month
and one on the last Tuesday of the month. All talks and dojos are
announced on the london-clojurians google group and the clojure google
group. The london-clojurians group page is here:
http://groups.google.com/group/london-clojurians/

cheers,
Bruce
-- 
@otfrom | CTO & co-founder @MastodonC | mastodonc.com

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


Re: Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread Marco Dalla Stella
2012/8/29 Evan Mezeske :
> I finally got around to writing the first installment in what is going to be
> a series of articles about my experiences with building a commercial web app
> in Clojure and ClojureScript:
>
> http://blog.mezeske.com/?p=552
>
> Sorry if the first article doesn't have enough meaty technical details (or
> code).  Hopefully the next couple of installments will have more detail!

Nice post! It's useful for newbie like me see how a project is
developed in Clojure.
Can't wait for part 2. :)

Cheers,
-- 
Marco Dalla Stella
web: http://marco.dallastella.name
twitter: http://twitter.com/mdallastella

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


Re: `format` behavior on Clojure vs CLJS

2012-08-29 Thread Moritz Ulrich

Shantanu Kumar writes:

> Hi,
>
> I noticed that on the Clojure REPL, `format` works fine:
>
> user=> (format "foo%s" :s)
> "foo:s"
> user=> (format "foo%s" 's)
> "foos"
>
> However, on the CLJS REPL (Rhino), I get this:
>
> ClojureScript:cljs.user> (format "foo%s" :s)
> "foo���'s"
> ClojureScript:cljs.user> (format "foo%s" 's)
> "foo���'s"
>
> Wanted to first confirm this is a bug before filing a ticket.
>
> Shantanu

This seems like a bug to me. It's caused by an implementation detail of
ClojureScript (keywords and symbols are string starting with a specific
UTF8 byte sequence).

--
Moritz Ulrich

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


Re: Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread Shantanu Kumar
Thanks for sharing the blog post - I enjoyed reading it. Looking
forward to the rest of the series.

Shantanu

On Aug 29, 1:38 pm, Evan Mezeske  wrote:
> I finally got around to writing the first installment in what is going to
> be a series of articles about my experiences with building a commercial web
> app in Clojure and ClojureScript:
>
> http://blog.mezeske.com/?p=552
>
> Sorry if the first article doesn't have enough meaty technical details (or
> code).  Hopefully the next couple of installments will have more detail!
>
> -Evan

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


Building School Seating Charts in Clojure and ClojureScript: Part 1

2012-08-29 Thread Evan Mezeske
I finally got around to writing the first installment in what is going to 
be a series of articles about my experiences with building a commercial web 
app in Clojure and ClojureScript:

http://blog.mezeske.com/?p=552

Sorry if the first article doesn't have enough meaty technical details (or 
code).  Hopefully the next couple of installments will have more detail!

-Evan

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

Re: [emacs over ssh limitations]

2012-08-29 Thread Tim Cross

I've just got my first mac and will investigate a bit and let you know what 
I find out. I know that emacs can work over ssh with all key combos and am 
fairly certain it will be an issue with the terminal emulator, so I should 
be able to find the right setup with a bit of time..

Tim

On Tuesday, August 28, 2012 11:29:22 PM UTC+10, Stuart Sierra wrote:
>
> SSH in iTerm 2 from an OS X machine to a Linux server. $TERM is 
> "xterm-256color" at both ends. We use this for pair-programming, so X and 
> tramp are not helpful.
> -S
>
>

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