Re: Heresy? Re: DSSSL WWW Enhancements

Subject: Re: Heresy? Re: DSSSL WWW Enhancements
From: Dave Love <d.love@xxxxxxxx>
Date: 19 May 1997 15:07:58 +0100
>>>>> "Paul" == Paul Prescod <papresco@xxxxxxxxxxxxxxxxxxxxxxxxx> writes:

 >> I don't see how you will be able to fit all of the Scheme
 >> functional style into "some other syntax".

 Paul> That's easy. There are several functional languages with infix
 Paul> syntax. The three most popular are Haskell, ML and Dylan. Note
 Paul> that in the early days, Lisp had two syntaxes, parenthesized
 Paul> and more traditional.

[And there are old, commonly-used examples of Lisp mixfix syntaxes in
things like Macsyma.  It's also easy to do in a full Scheme system (at
least one with `eval') if you're happy with a Pratt parser or similar.]

It may well be a good idea to provide alternative syntax for lusers
likely to fret about it, though they've presumably swallowed the alien
HTML syntax already.  Perhaps it would die out eventually anyhow, like
Mexps...

However, if you actually try to build such things atop vanilla Scheme
there seem to be some messy practical problems mainly due to the
lexical structure of the existing language and, partly, its
higher-order features.

For instance: you probably don't want to make whitespace significant
and you probably want infix arithmetic.  Now you need a way to square
the presence of `-' in names in the standard with its use as an
operator; you probably also need a syntax for representing the value
of the symbol formerly known as `-' to be able to use it in higher
order functions.  Etc.

Obviously you can hack round this, perhaps by defining `_' to have the
normal meaning of `-' in the right context but, unless I've missed
tricks, you're probably defining a language which is non-trivially
different from the base expression language.  (This may not be so much
of a problem in a DSSSL context as it would be in a more general
Scheme context with an existing code base to be considered.)  I'd be
interested in suggestions for good tricks here.

Would application as juxtaposition à la ML and Haskell be good for the
masses?  (I don't know, but suspect the Dylan route is better.)  If
so, there are probably extra issues there.

Another significant point is that if you're talking about a
translation between two different syntaxes, possibly mixed, there are
probably significant issues when it comes to debugging (which is
already hard enough already, at least in current Jade, no whinge
intended).



 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread