On Tue, Feb 24, 2009 at 6:33 AM, Onorio Catenacci <catena...@gmail.com> wrote: > > 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? >> > > I'm just new to Clojure but I have a couple of thoughts on this I'd > like to share: > > 1.) What's so hard about using parentheses? I mean really it's just a > different syntax to learn. Is this really that much more difficult to > understand than using curly braces in C-based languages or IF/ ENDIF > (and similar constructs) in VB and VB-like languages? What I > personally find confusing is _inconsistent_ syntax. If I live to be > 100 I don't think I'll ever be able to remember the rule about when a > person uses parentheses behind a subroutine or function call in VB. > This is one reason I don't much care for VB.
As I said, it's not me that has a problem with parentheses. It's not hard to find developers that say that don't like Lisp because of the parens. I think the question is whether we should make an effort to appease those people. Clearly the majority of the people on this list feel the answer is "no". > 2.) If you think it's a good idea why bother to ask for permission? I didn't ask for permission. I asked if others thought it was a good idea. Most said "no". > Create your RMVClojure and release it to the world. If people think > it's a good idea they'll adopt it. If not . . . well, they won't. > There are, of course, downsides to forks but if you really feel that > this would help adoption of Clojure, why ask for the permission of > others? It wouldn't be a fork. It would be a simple preprocessor that would use standard Clojure after the preprocessor runs. -- 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 -~----------~----~----~----~------~----~------~--~---