chicken-users
[Top][All Lists]
Advanced

[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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]