[plt-scheme] MrMathematica

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Fri Jun 11 13:16:51 EDT 2004

On Jun 11, 2004, at 1:04 PM, Michael Sperber wrote:
> Eli> Any other ideas how to deal with `easy' syntax without this, or 
> will
> Eli> you switch to normal no-discount syntax?
> Design a combinator library first.  Then, only when that's done, start
> thinking about funky syntax, and only when there's significant and
> obvious benefit.  Otherwise, don't.

Mike, from a historical perspective this advice wasn't used and wasn't 
useful. The lambda calculus was designed without knowledge of 
Schoenfinkel's S/K basis and Curry re-invented these things later on. 
Do you really believe that combinators would have been better?

Having said I think what you're saying in general could be this:

1. When you add a language, think of it as the API of a library.
2. Develop it to figure out the proper functional framework.
3. If you discover the need for syntax (binding, quoting, ordering), 
develop it around this API.

In other words, languages are lurking in APIs so why not use the 
development of APIs to grow languages carefully.

-- Matthias

P.S. Call the functions combinators and you're back to what you said. 

Posted on the users mailing list.