If you want to do this, knock yourself out. Just don't call it Clojure anymore.
Personally I'm opposed to watering something down just because it's tricky. ~Jason On Feb 24, 6:27 am, Onorio Catenacci <catena...@gmail.com> wrote: > On Feb 24, 8:35 am, Mark Volkmann <r.mark.volkm...@gmail.com> wrote: > > > > > 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. > > People will be learning a different syntax. A fork by any other > name. :-) > > -- > Onorio Catenacci III --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---