[Scheme-reports] "unspecified values"
Andy Wingo
(19 May 2011 15:49 UTC)
|
Re: [Scheme-reports] "unspecified values"
Alaric Snell-Pym
(19 May 2011 16:11 UTC)
|
Re: [Scheme-reports] "unspecified values"
Andy Wingo
(19 May 2011 17:11 UTC)
|
Re: [Scheme-reports] "unspecified values"
Alex Shinn
(21 May 2011 05:04 UTC)
|
Re: [Scheme-reports] "unspecified values"
Andy Wingo
(21 May 2011 08:52 UTC)
|
Re: [Scheme-reports] "unspecified values"
Jim Rees
(21 May 2011 13:58 UTC)
|
Re: [Scheme-reports] "unspecified values"
Andy Wingo
(21 May 2011 15:10 UTC)
|
Re: [Scheme-reports] "unspecified values"
John Cowan
(21 May 2011 18:24 UTC)
|
Re: [Scheme-reports] "unspecified values"
Andy Wingo
(22 May 2011 13:28 UTC)
|
Re: [Scheme-reports] "unspecified values" Andre van Tonder (21 May 2011 15:19 UTC)
|
Re: [Scheme-reports] "unspecified values"
Alex Shinn
(21 May 2011 18:19 UTC)
|
Re: [Scheme-reports] "unspecified values"
Alaric Snell-Pym
(23 May 2011 11:34 UTC)
|
Re: [Scheme-reports] "unspecified values"
John Cowan
(23 May 2011 15:57 UTC)
|
Re: [Scheme-reports] "unspecified values"
Alaric Snell-Pym
(23 May 2011 11:20 UTC)
|
On Fri, 20 May 2011, Alex Shinn wrote: > On Thu, May 19, 2011 at 10:10 AM, Andy Wingo <wingo@pobox.com> wrote: >> Unfortunate. >> >> I do not agree with the note that permitting any number of values to be >> returned from `set!' et al is incompatible. It is not incompatible with >> implementations, as it widens the scope of what they may do. It is not >> incompatible with existing programs, as I do not expect existing >> implementations to switch -- most will do what they have been doing. > > Yes, it is incompatible with existing programs. One common example is: > > (define-syntax time > ((time expr) > (let* ((start (current-time)) > (res expr)) > (report-time 'expr start (current-time)) > res))) > > This will work fine for arbitrary expressions, including > *set! and I/O operations, so long as they return a single > value as they do in R5RS. Arbitrary expressions do not return a single value in R5RS, so I would say the above macro is buggy even in R5RS. It fails for something as simple as (time (values 1 2)) /in R5RS/. So your example is IMO invalid, unless what you really want is to return to R4RS. I wonder sometimes... ;)
_______________________________________________ Scheme-reports mailing list Scheme-reports@scheme-reports.org http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports