On Sun, Jun 02, 2013 at 12:03:38AM -0400, John Cowan wrote:I've never understood this jump in logic: If the compiler only rewrites
> For example, it is possible for an implementation to rewrite calls on `car`,
> which is stateless, into calls on `%internal-car`, which the compiler knows
> how to inline. All references to `car` in operand position are then
> rewritten as `(lambda (pair) (%internal-car pair))`. Consequently,
> `(eqv? car car)` will naturally return `#f`, since two lambdas are now
> involved where in the source there was only one.
car in operand position, how would you ever be able to obtain a reference
to it? All other cars are not rewritten, so (eq? car car) will always
refer to the non-rewritten version of car.
_______________________________________________ Scheme-reports mailing list Scheme-reports@x http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports