[plt-scheme] keywords, take 2 (a backward-compatible change)

From: Matthew Flatt (mflatt at cs.utah.edu)
Date: Mon Oct 3 15:56:33 EDT 2005

At Mon, 03 Oct 2005 20:23:34 +0100, Matt Jadud wrote:
> [...] Does it make programming problems that are 
> currently very difficult to solve much easier?

My problem is that I have too many functions with variants or lot of
options. The list of suspects will surprise no one, and here are the
first ones that come to mind:

 * make-struct-type

 * slide, side/title, slide/title/center, slide/name/title/center,
   page-para, page-para/r, page-para*/r, 
   lt-find, rt-find, ct-find, lb-find, rb-find cb-find, lbl-find,
   etc. (It gets too painful even to write out complete sets!)

 * pack

People with experience using keywords tell me that keywords can solve
this sort of problem. I'm willing to give it a try.

> I guess I'm just curious why it is a feature suggested for the base 
> language, and why it isn't/cannot be a feature of a language in the tower?

The problem shows up enough that, if keywords are the solution,
keywords will be used frequently in the base language.

I've become convinced, however, that keywords as colon-prefixed or
colon-suffixed "symbols" will create too many compatibility issues in
the short run. It's surely not the right thing to do this week.

I like the idea of `#:'-prefixed keywords. It lets us experiment with
keywords without creating lots of new problems. If keywords prove
valuable enough, then one day when we're making other big changes,
maybe it will make sense to introduce a colon-suffixed syntax for

For those who like the idea of keywords: are `#:' keywords good enough,
or is the `#:' syntax so intrusive/ugly that the experiment is useless
or misleading?


Posted on the users mailing list.