http://xkcd.com/297/ 'nuff said ;-)
Tom 2009/2/23 Vincent Foley <vfo...@gmail.com> > > I'm opposed to this idea. I don't think we should pander to the > masses by creating a schism between new and experienced users. New > users should be introduced to the real thing immediately and it is up > to the tutorials and community to help them overcome the fear/ > puzzlement of parentheses. Like many other people have mentioned, > parentheses are not there just to be different, they're an integral > part of Clojure's power and hiding that fact from users will just > prevent them from using Clojure the way it's meant to. > > What's the problem with parentheses anyway? It's the same as in Java > except you move the opening parentheses to the left of the function > name (and with Clojure, you don't even need to remove the commas!): > > foo(bar, baz) => (foo bar, baz) > > Vincent. > > On Feb 23, 10:42 am, Mark Volkmann <r.mark.volkm...@gmail.com> wrote: > > I have an idea I'd like to float to see if there are reasons why it's > > a bad idea. > > > > What if Clojure had an alternate "surface" syntax that was translated > > into standard Clojure syntax by a kind of preprocessor? > > > > Many people that don't like Lisp dialects don't like them because of > > the parentheses. I'm trying to address that. > > > > Here's a simple example of valid Clojure code. > > > > (defn pig-latin [word] > > (let [first-letter (first word)] > > (if (.contains "aeiou" (str first-letter)) > > (str word "ay") > > (str (subs word 1) first-letter "ay")))) > > > > (println (pig-latin "red")) > > (println (pig-latin "orange")) > > > > Here's what that same code would look like in my alternate syntax. > > > > defn pig-latin [word] > > let [first-letter (first word)] > > if .contains "aeiou" (str first-letter) > > str word "ay" > > str (subs word 1) first-letter "ay" > > > > println (pig-latin "red") > > println (pig-latin "orange") > > > > The rules for turning this into standard Clojure syntax are pretty > simple. > > > > 1) If a line is indented farther than the previous one, it is part of > > the previous line. > > 2) If a line doesn't start with a (, then add one. > > 3) If the next line is indented less than this one, add the > > appropriate number of )'s at the end. > > 4) If the first token on a line is "if" and the first non-whitespace > > character after it is not ( > > then assume the rest of the line is the condition and wrap it in ( ). > > > > A translation from standard Clojure syntax to this alternate form > > should also be possible. > > > > Is this a bad idea? > > > > -- > > R. Mark Volkmann > > Object Computing, Inc. > > > --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---