Subject: keywords in Common Lisp and (MIT) Scheme From: Erik Naggum <email@example.com> Date: 25 Jan 1995 07:05:19 UT Newsgroups: comp.lang.lisp Message-ID: <19950125T070519Z.firstname.lastname@example.org> some Scheme implementations allow keyword arguments in lambda lists, such as MIT Scheme. the keywords are distinguished from other symbols by a trailing colon. this notation has been picked up by Draft International Standard 10175 Document Style Semantics and Specification Language (DSSSL). I have written some Common Lisp code to process SGML documents, and thought I'd try my hand at some DSSSL implementation, since the two standards are intimately connected. however, this has clashed with a most annoying and exceedingly trivial little problem. a trailing package marker (:) in a symbol, as in foo:, causes `read' to signal an error, as CLtL2 (p 521) indicates it should. however, ANSI CL 2.3.5 (5) says undefined patterns including the package marker are reserved for implementation-dependent use. well, that's not entirely bad if I can find a way to do it. is there a reasonable way I can convince the Lisp reader that a trailing colon is not really a major disaster, but largely equivalent to a keyword? I have been messing with the reader before, with moderate success, but this one seems to be out of my league. I can disable the colon as the package marker, and instead look for a trailing colon in all my symbols, but if I do this, I have to implement substantial parts of the reader myself, as I can't get into its internals sufficiently to just fix this minor problem. do others do this, or do they switch to Scheme just because of a colon problem? #<Erik> -- miracle of miracles. look what the Net dragged in.