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
langage 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 ).

:-)

-- 
Laurent

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

Reply via email to