[racket] begin vs +

From: Matthias Felleisen (matthias at ccs.neu.edu)
Date: Mon Aug 2 10:00:39 EDT 2010

call/cc captures the environment when it creates a procedural representation of the continuation, just like lambda. The two are doing more or less the same thing with two differences:  

 (1) lambda uses an explicit expression to create a procedure while call/cc uses an implicit expression (the current evaluation context); 

 (2) lambda create a mathematical abstraction if the expression avoids effects and call/cc introduces an effect into its procedure (abort). 

Note, a functional continuation creator (say F but NOT shift) avoids the second difference. 

Posted on the users mailing list.