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

Reply via email to