Python equivalent of call/cc?
Aahz
aahz at pythoncraft.com
Wed Jul 9 23:40:40 EDT 2008
In article <be112$4874d38a$18817 at news.teranews.com>,
The Pythonista <none at this.time> wrote:
>
>Yesterday, I was hacking around a bit, trying to figure out how to
>implement the semantics of call/cc in Python. Specifically, I wanted to
>translate this Scheme code to equivalent Python:
>
>####
>
>(define theContinuation #f)
>
> (define (test)
> (let ((i 0))
> (call/cc (lambda (k) (set! theContinuation k)))
> (set! i (+ i 1))
> i))
>
> (test)
> (theContinuation)
> (theContinuation)
>
Python relies on mutables to do this:
class holder: pass
def call():
x = holder()
x.counter = 0
def cc():
x.counter += 1
return x.counter
return cc
foo = call()
print foo()
print foo()
print foo()
--
Aahz (aahz at pythoncraft.com) <*> http://www.pythoncraft.com/
"as long as we like the same operating system, things are cool." --piranha
More information about the Python-list
mailing list