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. _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users