Alan Bawden wrote:
> I've deleted the message, but somebody wrote:
>
>      Is this a valid program transformation?
>
>      (apply = (append x y z))
>
>      <==>
>
>      (let ((x0 x)
>          (y0 y)
>          (z0 z))
>        (let* ((xy (append x0 y0))
>             (yz (append y0 z0)))
>        (and (apply = xy)
>             (apply = yz))))
>
> This is -not- a valid program transformation.  Consider the case where y is
> the empty list.
>   


It wasn't meant as a question of "what does R6 do".

It was meant to show what you asked for: a model (in this
case for an optimization or pessimization, depending on
circumstance) that is much harder to explain and implement
if you insist on those arity checks.   The arity checks for
which you offer the rationale that they just "seem right".

-t



_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to