guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: eval


From: Martin Grabmueller
Subject: Re: eval
Date: Tue, 6 Feb 2001 11:48:47 +0100 (MET)

> From: Dirk Herrmann <address@hidden>
> Date: Tue, 6 Feb 2001 11:10:32 +0100 (MET)
> 
> On 6 Feb 2001, Neil Jerram wrote:
> 
> > Yes, but I'm reluctant to preempt the outcome of our module design
> > process (which included discussion of this kind of syntax).  And it
> > has to be balanced against the use of `,' as an identifier character,
> > etc. etc.  And... "#m" is still a lot shorter than ",module" :-)
> 
> The reasons why I am not happy with #m is, that first, hash extension
> characters are rare and it is likely that we will sooner or later run into
> conflicts.  Second, #m can be put _anywhere_ in the code, for example
> (list 1 2 #m foo 3 4), which does not make sense to me.  You could modify
> the reader to treat #m specially and only accept it on the top-level, but
> this does not seem to be a clean solution to me. 

I think Dirk is right here. ,m does not conflict with anything (see
below) and we save a hash extension character. The remaining problem
is that ,m at the top-level has another semantic than ,m in an
expression, but at least a misuse of ,m anywhere in an expression will
signal an error and not change (silently) modules, as Neil's
suggestion might do (of course this could be handled, but with ,m we
get this error checking for free.)

>                                                    Using ',' does not
> conflict with anything else, and it is common practice to use it for meta
> commands.  If I understand things right, ',' can not be used as an
> identifier character (at least not as the first character of an
> identifier) because of it's unquote semantics, or am I missing something?  

That is correct. ,m _always_ expands into (unquote m), which does not
conflict with anything when used as a meta-command, because `unquote'
is only meaningful in `quasiquote' expressions anyway. And according
to R5RS, `,' is not allowed in identifiers at all (IIRC).

> The question, whether to use 'm' or 'module' is not of importance, since
> we could easily provide both, as Keisuke already does it in his example
> for a set of meta commands.

ACK.

'martin
-- 
Martin Grabmueller              address@hidden
http://www.pintus.de/mgrabmue/  address@hidden on EFnet



reply via email to

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