[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] Re: [Chicken Gazette - Issue 13] - ##sys#:keyword:'s
From: |
John Cowan |
Subject: |
Re: [Chicken-users] Re: [Chicken Gazette - Issue 13] - ##sys#:keyword:'s |
Date: |
Mon, 22 Nov 2010 17:56:54 -0500 |
User-agent: |
Mutt/1.5.18 (2008-05-17) |
Peter Bex scripsit:
> I'm not sure. It appears to be one of those typical "historically
> grown" things. The DSSSL standard contains *some* documentation
> for them, but it boils down to "they're almost like symbols, except
> self-evaluating" :)
They also mean the same thing everywhere: they cannot be lexically bound.
Chicken doesn't complain if you try, but the binding has no effect:
(let ((foo: 32) foo:) => foo:. That adds convenience.
> I found a copy of the DSSSL draft here:
> ftp://sunsite.unc.edu/pub/sun-info/standards/dsssl/draft/
The DSSSSL expression language (the part that's like Scheme)
is available in plain HTML at http://www.ccil.org/~cowan/dsssl
, and there's a summary (written by me, may contain errors) of
the differences between the expression language and Scheme at
http://trac.sacrideo.us/wg/wiki/DSSSLVsScheme .
> > Could we do away with them?
> I think we'll finally see a proper rigorous treatment of keywords when
> the RnRS process decides to take it upon them to standardize them ;)
There's a proposal for keyword arguments (not keywords as such)
at http://trac.sacrideo.us/wg/wiki/KeywordArgumentsArcfide . This
implementation uses only syntax-rules, and doesn't require changing
the reader; it binds keywords to keyword objects, which contain their
names and are equal if the names are equal. In this proposal, the use
of colons is just a convention, not an implementation requirement.
However, you need to export keyword names from a module explicitly,
since they are identifiers.
--
There are three kinds of people in the world: John Cowan
those who can count, address@hidden
and those who can't.