On Sat, Aug 4, 2012 at 6:43 PM, Mark Engelberg <mark.engelb...@gmail.com> wrote:
> What is the reasoning behind the design decision that this generates an
> error:
> (let [a :x b :x] #{a b})
> rather than just returning #{:x} ?

My first reaction was that literals have to obey the rules of the
underlying type or else they are not valid literals:

#{1 2 1} ;; error
{:x 1 :y 2 :x 3} ;; error

I hadn't even thought of using the set literal syntax with variables
that might not have unique value. I guess I'd ask: why not use the set
function?

(let [a :x b :x] (set [a b])) ;; #{:x}
-- 
Sean A Corfield -- (904) 302-SEAN
An Architect's View -- http://corfield.org/
World Singles, LLC. -- http://worldsingles.com/

"Perfection is the enemy of the good."
-- Gustave Flaubert, French realist novelist (1821-1880)

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