> > > For example, in Python you can write {1, 2} to produce a set, or {1: 2} to > produce a dict. But what does {} produce? Is it an empty set, or an empty > dict? Python chooses the latter, leaving the literal syntax for sets > incomplete. To my mind this is indicative of a design approach that sees > literal data syntax as sugar for data constructors, and not something that > deserves first class consideration. >
I agree Python's syntax/grammar doesn't have the mathematical elegance of a Lisp. On a scale of 1 to 10, with 10 being the perfect beginners' language, maybe Python is a 9. I hope with Clojure's greater mathematical beauty, it can get to about a 9.5. > Clojure, on the other hand, takes great care to ensure that its data can > always be represented as literals. For data that isn't a standard > collection type, there are tagged literals. Clojure syntax starts from a > representation of data, and in order to really understand it, I think it > needs to be taught from this principle as well. > > Can you elaborate? I really want to get your point but I'm not so proficient with the lingo. What do you mean by a "literal" and "tagged literals"? And how is a focus on the representation of data different than Python beyond Python's less elegant grammar? cs -- 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 unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.