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 <[email protected]> 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 [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to