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

Reply via email to