[Twisted-Python] twisted and functional programming idioms
Rodney D Price
rodprice at raytheon.com
Wed Jul 9 19:26:44 MDT 2008
I'm just getting started with Twisted, and trying to find
my way around. I've done quite a bit of functional
programming (Haskell), where recursion is a very
common idiom. I keep finding myself heading in that
direction as I try to understand how to use Twisted.
For example, if I wanted to write a loop in Haskell
that woke up once a second and did something, I
might write
main = heartbeat
heartbeat = do
sleep 1000
doSomething
heartbeat
This code first sleeps for one second, then does
something, then calls itself. (The Haskell compiler
knows how to keep the stack from overflowing here,
in case anyone is wondering.)
So if I wanted to do something similar in Twisted,
my first inclination is to use callLater,
def heartbeat(reactor):
doSomething()
reactor.callLater(1, heartbeat, reactor)
reactor.run()
But then my head starts hurting, because I keep
thinking that I have to set up all the callbacks
before I start the reactor. This code sets callbacks
at runtime. Will that be a problem?
-Rod
P.S. I know there's probably a function somewhere
in Twisted to do this already, but I'm not asking how
to do this particular thing. I'm really asking if thinking
in terms of recursion is a useful Twisted idiom.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/twisted-python/attachments/20080709/f97116ff/attachment.html>
More information about the Twisted-Python
mailing list