Re: Memory requirements



Benedikt Rosenau <rosenau@xxxxxxxxxxxxxx> writes:

William D Clinger <cesura17@xxxxxxxxx> wrote:

I think you misunderstood me. Petit Larceny, by default,
evaluates the operands of that expression before the
operators. Changing the garbage collector does not change
the order of evaluation.

Sorry for the delay.

The point of my original article was that there is a strange correlation
between schemes evaluating the operator before the operands and the schemes
which need infinite memory to carry out the ((call/cc call/cc) (call/cc
call/cc)) loop.

That "correlation" is not "strange" at all if you look at the
operational semantics of call/cc. Call/cc exposes evaluation order
even where it would otherwise not be exposed.

Larceny seemed to be the only exception to that observation. However, as
you point out, Larceny is not an exception. This is more puzzling as it
apparently makes the correlation an 1:1 mapping: Schemes evaluating the
operator first are the schemes which need infinite memory for that loop.

Yes. That's completely normal and follows from the operational
rewrite rules for call/cc.

.



Relevant Pages

  • Re: Memory requirements
    ... between schemes evaluating the operator before the operands and the schemes ... which need infinite memory to carry out the ((call/cc call/cc) (call/cc ... see that it just captures the current continuation and returns it ... Now, when the operator is evaluated first, the evaluation goes like ...
    (comp.lang.scheme)
  • Re: Memory requirements
    ... between schemes evaluating the operator before the operands and the schemes ... which need infinite memory to carry out the ((call/cc call/cc) (call/cc ...
    (comp.lang.scheme)
  • Re: call/cc problem
    ... Jens Axel Søgaard wrote: ... used as the result of 1, and evaluation continues with 2. ... procedure application: expected procedure, given: 1; ...
    (comp.lang.scheme)
  • Re: call/cc problem
    ... because they both apply the current continuation to 1. ... used as the result of 1, and evaluation continues with 2. ... procedure application: expected procedure, given: 1; ...
    (comp.lang.scheme)