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

Re: [Scheme-reports] diff between R6RS and the R7RS small language draft

Hi Alex!

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