On Sun, Mar 25, 2012 at 11:59 PM, Ambrose Bonnaire-Sergeant <abonnaireserge...@gmail.com> wrote: > On Mon, Mar 26, 2012 at 11:46 AM, Cedric Greevey <cgree...@gmail.com> wrote: >> >> So ... any further objections, other than "it's unlikely anyone cares >> enough to bother actually making such a change"? :) > > It breaks the uniformity of Clojure syntax. > > Almost all sugar is prefix: you can identify syntax by looking to the left > of the form. > > #{1} > (fn [a b & c]) (variable arity, left of "c") > #'var > '(1 2 3) > {:a 1} > > I remember Rich Hickey explaining this in a discussion with Daniel Spiewak.
Isn't this just another way of saying "humans will have to read to the end to see what the form is?" I provided a response to that objection already. Of course, this suggests an alternative, too: <{set items go here}> Maps aren't valid arguments to <, so it should be rare that you'd have a < immediately followed by a {. And normally there'd be a space in any remaining cases, e.g. (my-hof < {:foo 1} other-stuff). We'd now require that space, and treat a <{ without any space between as a single delimiter matched by }>. Note that this can immediately be identified at the left, before reaching the far side. We would also require a space in } > if they are to be treated as separate tokens, since otherwise (def eclectic-set <{:keyword 42 'symbol {:k :v}>}>) is tricky to parse. (The set's last two items would be a map and >; requiring the space makes it a mismatched delimiter right after :v and adding the space makes it easily parsed as a map and >.) -- 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