<!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>----- Original Message ----- </DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <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=matthias@ccs.neu.edu 
  href="mailto:matthias@ccs.neu.edu">Matthias Felleisen</A> </DIV>
  <DIV style="FONT: 10pt arial"><B>Cc:</B> <A title=jacobm@cs.uchicago.edu 
  href="mailto:jacobm@cs.uchicago.edu">Jacob Matthews</A> ; <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 4:09 
  AM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [plt-scheme] Please help 
  test version 359.100</DIV>
  <DIV><BR></DIV>
  <DIV>My reading indicates they would both be legal.<BR><BR>What seems to be 
  illegal is<BR><BR>&nbsp; (for-each (lambda (x) (values x x)) (list 
  1))<BR>&nbsp; --&gt;<BR>&nbsp; (values 1 1)</DIV></BLOCKQUOTE>
<DIV><FONT face="Courier New" size=2>If I understand well, the procedure is 
invoked in tail position when reaching the last element of the list. To me it 
seems up to the continuation of the for-each call&nbsp;how many values can be 
returned.&nbsp;(I don't bother much about this for in my code for-each calls 
always (I hope) have continuations that disregard any returned 
value(s))&nbsp;</FONT></DIV><FONT face="Courier New" size=2></FONT>
<DIV><FONT face="Courier New"><FONT size=2><FONT face="Courier New" 
size=2></FONT></FONT></FONT>&nbsp;</DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV><FONT face="Courier New" size=2></FONT>&nbsp;</DIV>
  <DIV><BR><BR>Robby<BR><BR>At Mon, 13 Nov 2006 21:39:11 -0500, Matthias 
  Felleisen wrote:<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; <BR>&gt; On Nov 13, 2006, at 6:52 
  PM, Jacob Matthews wrote:<BR>&gt; <BR>&gt; &gt; On Nov 13, 2006, at 5:31 PM, 
  Robby Findler wrote:<BR>&gt; &gt;<BR>&gt; &gt;&gt; Is "some object" allowed to 
  be multiple values or not? That text<BR>&gt; &gt;&gt; suggests not.<BR>&gt; 
  &gt;<BR>&gt; &gt; "Types are associated with values (also called objects) 
  rather than&nbsp; <BR>&gt; &gt; with variables" (section 1.1) seems to be the 
  only definition of&nbsp; <BR>&gt; &gt; what an 'object' is. I think it's clear 
  that they are saying that&nbsp; <BR>&gt; &gt; values are also called objects, 
  and that by the normal rules of&nbsp; <BR>&gt; &gt; English we can conclude 
  that the singular 'object' means the same&nbsp; <BR>&gt; &gt; thing as the 
  singular 'value'. So the question becomes, are&nbsp; <BR>&gt; &gt; multiple 
  values the same thing as a single value?&nbsp; The report seems&nbsp; <BR>&gt; 
  &gt; to think not (I'm going here by the descriptions of the values and&nbsp; 
  <BR>&gt; &gt; call-with-values functions in section 6.4), though it plays 
  its&nbsp; <BR>&gt; &gt; usual trick of simply not defining what happens if a 
  context&nbsp; <BR>&gt; &gt; expects a single value and it receives multiple 
  ones.<BR>&gt; &gt;<BR>&gt; &gt; Applying this back to the original question, I 
  think we have to&nbsp; <BR>&gt; &gt; conclude that for-each is supposed to be 
  able to be called in&nbsp; <BR>&gt; &gt; contexts that expect exactly one 
  value. In Schemes like PLT Scheme&nbsp; <BR>&gt; &gt; where contexts that 
  expect one value signal an error if they&nbsp; <BR>&gt; &gt; receive some 
  other number, then it's a violation of R5RS for for- <BR>&gt; &gt; each to 
  behave the way 359.100 did; but for Schemes like Bigloo&nbsp; <BR>&gt; &gt; 
  that have coercion rules that take a multi-value return to a single- <BR>&gt; 
  &gt; value context, it's not a violation.<BR>&gt; &gt;<BR>&gt; &gt; 
  -jacob<BR>&gt; &gt;<BR>&gt; &gt; (I actually wrote up a version of this before 
  and then deleted it,&nbsp; <BR>&gt; &gt; thinking it was too technical for 
  anybody to care about ... looks&nbsp; <BR>&gt; &gt; like I was wrong. :) 
  )<BR>_________________________________________________<BR>&nbsp; For 
  list-related administrative tasks:<BR>&nbsp; <A 
  href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</A></DIV></BLOCKQUOTE></BODY></HTML>