<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=utf-8">
<META content="MSHTML 6.00.2900.2963" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff>
<DIV style="FONT: 10pt arial"><FONT face="Courier New">Hi Robby and 
Matthias,</FONT></DIV>
<DIV style="FONT: 10pt arial"><FONT face="Courier New">Agreed. I was a little 
bit hasty in my reaction, sorry. An implementation necessarily is an 
instantiation,&nbsp;like an element of a set. We all known what happens if the 
border between elements and sets are confused.&nbsp;Personally I&nbsp;think that 
an implementation should follow the law as far as possible and desirable, but 
where law is not&nbsp;clear or contrary to common sense, the implementator has 
the freedom to make things clear. Just mho. Personally I don't think that R5RS 
specifies whether or not 'unspecified' is uniquely specified or unspecified. I 
noticed that the same kind of problems is discussed on the R6RS 
list.&nbsp;</FONT><FONT face="Courier New">Best wishes, Jos</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=robby@cs.uchicago.edu href="mailto:robby@cs.uchicago.edu">Robby 
  Findler</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A title=jos.koot@telefonica.net 
  href="mailto:jos.koot@telefonica.net">Jos Koot</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=plt-scheme@list.cs.brown.edu 
  href="mailto:plt-scheme@list.cs.brown.edu">plt-scheme@list.cs.brown.edu</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Tuesday, November 14, 2006 1:28 
  PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [plt-scheme] Please help 
  test version 359.100</DIV>
  <DIV><BR></DIV>
  <DIV>On Nov 14, 2006, at 6:36 AM, Jos Koot wrote:<BR><BR>&gt; ----- Original 
  Message -----<BR>&gt; From: Matthias Felleisen<BR>&gt; To: Jacob 
  Matthews<BR>&gt; Cc: Robby Findler ; <A 
  href="mailto:plt-scheme@list.cs.brown.edu">plt-scheme@list.cs.brown.edu</A><BR>&gt; 
  Sent: Tuesday, November 14, 2006 3:39 AM<BR>&gt; Subject: Re: [plt-scheme] 
  Please help test version 359.100<BR>&gt;<BR>&gt; I don't think this is 
  relevant. The true question is whether<BR>&gt;<BR>&gt;&nbsp;&nbsp; (+ 
  (for-each add1 '()) (for-each sub1 '()))<BR>&gt;<BR>&gt; steps 
  to<BR>&gt;<BR>&gt;&nbsp;&nbsp; (+ some-value some-value)<BR>&gt;<BR>&gt; or 
  to<BR>&gt;<BR>&gt;&nbsp;&nbsp; (+ some-value 
  some-different-value)<BR>&gt;<BR>&gt; I believe that the second one is the 
  case already. -- Matthias<BR>&gt;<BR>&gt;&nbsp; Then why do I get: (eq? 
  (for-each add1 '()) (for-each sub1 '())) -- <BR>&gt; &gt; #t ?<BR>&gt; 
  (version 359.100-svn4nov2006) Greetings, Jos Koot<BR><BR><BR>Because an 
  implementation can satisfy a specification without being&nbsp; <BR>equivalent 
  to it. I conjecture that no Scheme implementation is&nbsp; <BR>equivalent to 
  R5RS's specification.<BR><BR>In other words, test a lot on many different 
  implementations and you&nbsp; <BR>still won't know for sure what the legal 
  language means. -- Matthias<BR></DIV>
  <DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
  <DIV>At Tue, 14 Nov 2006 12:54:54 +0100, "Jos Koot" wrote:<BR>&gt; ----- 
  Original Message ----- <BR>&gt;&nbsp;&nbsp; From: Robby Findler 
  <BR>&gt;&nbsp;&nbsp; To: Matthias Felleisen <BR>&gt;&nbsp;&nbsp; Cc: Jacob 
  Matthews ; <A 
  href="mailto:plt-scheme@list.cs.brown.edu">plt-scheme@list.cs.brown.edu</A> 
  <BR>&gt;&nbsp;&nbsp; Sent: Tuesday, November 14, 2006 4:09 
  AM<BR>&gt;&nbsp;&nbsp; Subject: Re: [plt-scheme] Please help test version 
  359.100<BR>&gt; <BR>&gt; <BR>&gt;&nbsp;&nbsp; My reading indicates they would 
  both be legal.<BR>&gt; <BR>&gt;&nbsp;&nbsp; What seems to be illegal 
  is<BR>&gt; <BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (for-each (lambda (x) (values x 
  x)) (list 1))<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; 
  --&gt;<BR>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (values 1 1)<BR>&gt;<BR>&gt; If I 
  understand well, the procedure is invoked in tail position when<BR>&gt; 
  reaching the last element of the list. To me it seems up to the<BR>&gt; 
  continuation of the for-each call how many values can be returned. (I<BR>&gt; 
  don't bother much about this for in my code for-each calls always (I<BR>&gt; 
  hope) have continuations that disregard any returned value(s))<BR><BR>That's 
  what for-each does (did, until very recently anyways). The<BR>question is 
  whether or not that's legal.<BR><BR>Robby</DIV></BLOCKQUOTE></BODY></HTML>