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. 2.) If you think it's a good idea why bother to ask for permission? 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? -- 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 -~----------~----~----~----~------~----~------~--~---