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

Rabbit



   Date: Thu, 13 May 93 14:37:03 BST
   From: Jeff Dalton <jeff@aiai.edinburgh.ac.uk>
   ...
   I'm pretty sure Rabbit handled a similar form called CATCH.  But I'm
   also pretty sure CATCH was a special form.  CALL/CC could presumably
   be defined using CATCH, but whether all of the CATCH optimizations
   could still be done is less clear.  On the other hand, there must be 
   more recent compilers that take the Rabbit approach of converting
   to continuation-passing style, and they will handle CALL/CC directly.

CATCH was a special form with one variable (to be bound to the
continuation) and one subform.

	(CATCH v expr) == (CALL/CC (LAMBDA (v) expr))
	CALL/CC = (LAMBDA (FOO) (CATCH BAR (FOO BAR)))
--Guy