On Tue, Feb 24, 2009 at 7:43 AM, Laurent PETIT <laurent.pe...@gmail.com> wrote: > Mark, > > If you have not been discouraged by the crowd of people having answered 'no' > to your question :-), and still have the idea of exploring this area, would > you consider designing a "surface language" that allows bidirectional flow > to and from clojure code ? > > If you do so, then you would well provide two functions, one from your > language to clojure, and one from clojure to your language. > > And then, it could be easy to : > * translate back and forth between your language and clojure > * use your work in IDEs (see what I mean :-) as just an alternate > visualisation/editing option (and potentially still let the IDE use straight > clojure format persistence ). > > :-)
Yes, I like that idea. If I get time to work on this, I'll do that. > 2009/2/24 Mark Volkmann <r.mark.volkm...@gmail.com> >> >> 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. -- 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 -~----------~----~----~----~------~----~------~--~---