[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Scheme-reports] diff between R6RS and the R7RS small language draft
- To: Alex Shinn <alexshinn@x>
- Subject: Re: [Scheme-reports] diff between R6RS and the R7RS small language draft
- From: Andy Wingo <wingo@x>
- Date: Tue, 16 Aug 2011 22:21:50 +0200
- Cc: scheme-reports <scheme-reports@x>
- In-reply-to: <CAMMPzYNtbM3NwFdqRghV+nPegs-pUe5dYc_J=s7EEQfq0B7K4g@mail.gmail.com> (Alex Shinn's message of "Wed, 17 Aug 2011 01:15:14 +0900")
- References: <CAMMPzYOV8-5WCbMxQg2aBKo5CE=ePqybWK-rOBkX_eiFStHY7Q@mail.gmail.com> <email@example.com> <CAMMPzYNtbM3NwFdqRghV+nPegs-pUe5dYc_J=s7EEQfq0B7K4g@mail.gmail.com>
On Tue 16 Aug 2011 18:15, Alex Shinn <alexshinn@x> writes:
> On Mon, Aug 15, 2011 at 6:47 PM, Andy Wingo <wingo@x> wrote:
>>> Identifier syntax is not provided. [...]
> This particular case has been argued extensively,
> and is brought up multiple times in the R6RS
> ratification votes. I can dig up references after I
> catch up on mail, but it is hardly what you could
> call a "bad justification", even if you disagree with it.
Ah, I see the comments in the ballots, thanks for the pointer. I should
re-read those statements sometime.
>> In particular you can make the same argument about not knowing whether a
>> particular form is an expression or a definition. I guess my question
>> is, why is this a good argument against identifier-syntax?
> What is the point of this reductio ad absurdum? Are
> you suggesting we remove definitions (or expressions?)
> from the language?
No. I am arguing that expansion rules regarding internal defines make
it impossible to walk a <body> in a macro to determine the set of
bound variables at any given point. I consider this to be similar to
the question of, "is this a variable reference or not". But I won't
dwell on that point
You list two specific objections: determining whether a temporary is
needed, and implementing code walkers to do (e.g.) fast math. In the first
case, I would argue for the "macro writer's bill of rights": that
introducing an alias for a variable should be free, that you shouldn't
even need to check for that case in your macro. But, I understand
implementors that don't do this, not least because I am one of them :P
In the second case, I don't quite understand the macro, so I will
refrain from commenting.
I am getting close to understanding why you wouldn't want it, though. I
look forward to your comments, though it is not urgent :)
> Personally I voted against [centered/] because there are just too many
> division operators going around, and it's not clear to me what they're
> all used for. I'd just as soon stick with R5RS until we actually
> figure this out.
> Real-world examples of any of the operators under discussion
> would be helpful.
I understand the concern. AFAIU centered/ is useful when you want to
restrict the range of the result of division to be a fixnum, which is
useful when implementing Scheme.
Here is an argument for div0:
(FWIW, I'm fine with omitting it. But we should spend some thought on
Scheme-reports mailing list