From: Ray Song Date: 2012-04-02T14:43:36+09:00 Subject: Re: [ANN] return_bang 1.1 Released On Mon, Apr 02, 2012 at 05:10:50AM +0900, Eric Hodel wrote: > home :: https://github.com/drbrain/return_bang > rdoc :: http://docs.seattlerb.org/return_bang > bugs :: https://github.com/drbrain/return_bang/issues > > return_bang implements non-local exits for methods. As a bonus, you also get > exception handling that ignores standard Ruby's inflexible begin; rescue; > ensure; end syntax. > > Use return_bang to exit back to a processing loop from deeply nested code, or > just to confound your enemies *and* your friends! What could possibly go > wrong? > > === 1.1 / 2012-04-01 > > * Minor enhancements > * Added raise! to raise exceptions > * Added rescue! to rescue exceptions raised > * Added ensure! to always execute a block of code to perform cleanup > Your projects looks like an delimited continuation implementation of shift/reset operators suggested by [1]. [1]: Olivier Danvy and Andre Filinski (1990). "Abstracting Control". LISP and Functional Programming: 151–160. doi:10.1145/91556.91622. ISBN 089791368X -- Ray