[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: XML as a transition to s-expr



Your reward for tuning out )))))))) is to be able to write
macros.

In any case, if you write code in a functional style, you're 
going to end up with a collection of delimiters at the 
end of your code.  If you wrote equally functional code in
a language with syntax, you'd end up with functions that
ended )]}};]} or whatever.

I've found from experimenting with various syntactic tricks 
in Arc that it's actually a win if all the delimiters are 
parens.  It's a real nuisance to have expressions that end 
))})]), because you can't tell if you've put the } in the
right place.

What this suggests to me is that maybe one of the reason
people don't write functional programs in languages with
syntax is that the syntax gets in the way of it.  If so
that's a second disadvantage of syntax (along with preventing
macros).

--- Paul Prescod <paul@prescod.net> wrote:
> Michael Vanier wrote:
> > 
> >...
> > 
> > I don't see this as an issue.  Almost any decent editor will do
> > paren-matching.  
> 
> People do NOT like to be told that they need to change their tools
> (or,
> often, learn to use their tools more effectively) to use a new
> language.
> 
> > ... Most people do find )))))))) at the end of functions
> > pretty distracting, but you learn to tune it out.
> 
> If code is first and foremost a form of speech then what is the use
> putting in things that are distracting and that users must learn to
> tune
> out? 
> 
> >...
> > 
> > You could write a macro which does this e.g.
> >
> > (multi-if (test1 then action1)
> >      else (test2 then action2)
> >      else (test3 then action3)
> >      else (action4))
> 
> We're talking about newbies. Newbies want
> 
>  a) to code in a language that is already optimized for their needs
> 
> and
> 
>  b) to be able to read other people's code.
> 
> In other words they want the standard syntax to be newbie-friendly.
> 
> >...
>  but I doubt anyone would use it.  After a while you just don't
> notice
> stuff
> > like this.
> 
> We're talking about newbies. After a while they aren't newbies
> anymore.
> 
> > ... If
> > you don't like this, feel free to do this:
> > 
> > (define all-but-the-first-two-elements cddr)
> 
> And how will I read other people's code? Newbies do not go around
> redefining standard functions. They either find the langauge easy or
> they don't. They don't customize it to be easy.
> 
> >...
> > Your first point is the crucial one (more below).  The second one
> is
> > trivial; just use a vector.  You *can* program imperatively in
> scheme just
> > as well as in python.
> 
> Are vectors usable everywhere that lists are in Scheme, or do you
> have
> to do manual conversion back and forth? Once again, doing things the
> "easy way" takes more knowledge than just figuring out the hard
> (recursive) way!
> 
> >...
> > Well, you'll never get universal agreement in that community, so I
> see no
> > problem with using a particular implementation as long as it's well
> > supported.  
> 
> Will there be many third-party books and tutorials that will teach me
> how to solve problems with *that particular implementation*? That's
> the
> problem with splitting a language community among distribution lines.
> 
> > ... Libraries are vital, but if enough people like the language
> > enough to want to use it, the libraries will follow.
> 
> Maybe. I'm not convinced. There too many great languages out there.
> Not
> many would choose one that requires them to reinvent wheels.
> 
>  Paul Prescod


__________________________________________________
Do You Yahoo!?
Check out Yahoo! Shopping and Yahoo! Auctions for all of
your unique holiday gifts! Buy at http://shopping.yahoo.com
or bid at http://auctions.yahoo.com