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

Reply via email to