[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Continuations



Let's not quibble over terminology.  CPD's question is perfectly clear
and well-informed.  T supports continuations like Fortran does: they
exist but aren't first-class; they can't be returned as values of
procedures.  I think that when talking about continuations it's OK to
omit the qualifier "first-class," since it's usually understood, the
same way it's understood when you say "closure."  It's vacuous to say
that a language has or doesn't have closures or continuations unless the
adjective first-class is assumed; therefore assume it.  (Some people
will always choose to be confused.)

I think first-class continuations are generally good for the soul, and I
think it's good that the new Scheme report requires them.  I've never
claimed that T was really a Scheme dialect.  (Maybe one of these days it
will be.)  But the question of what one legitimately does with
continuations is nontrivial.  I'd like for people out there who have
real experience with them (e.g. someone from Indiana) to say something
about this.

The main problem I have with continuations is that a truly correct
implementation would dictate that a compiler cannot beta-convert in many
places where beta-conversion would otherwise be desirable.  This problem
is discussed on page 92 of Steele's tech report on RABBIT.