1 comment

[ 3.1 ms ] story [ 11.2 ms ] thread
Looks like this is a direct port of pg's version. I have to admit, I haven't seen callcc before and the concept while similar to closures scares me a bit. Storing a complete environment in a variable is a new concept to wrap my head around.

  This is an all-ruby implementation of choose/fail nondeterministic 
  programming with branch cut, as described in Chapter 22 of Paul Graham’s 
  On Lisp[1], or Section 4.3 of SICP[2].

  Due to Ruby containing a true call/cc, this is a much straighter port 
  of Paul Graham’s scheme version of this code than his Common Lisp or 
  my C versions are. :-)