John Fouhy wrote: > On 15/05/06, w chun <[EMAIL PROTECTED]> wrote: >> anyone know if list comps work the same way in haskell? > > Slightly not what you asked, but you can do some funky things with > list comprehensions in Haskell. > > Check this out: > > fibs = 0 : 1 : [ a + b | (a, b) <- zip fibs (tail fibs)] > > The python translation would be something like: > > fibs = [0, 1] + [ a+b for (a, b) in zip(fibs, fibs[1:])] > > But you can't quite do that in python :-)
You can come pretty close with generators, though it hurts to think about what is actually going on behind the scenes here: In [1]: import itertools In [2]: def fibs(): ...: yield 0 ...: yield 1 ...: fib1 = fibs() ...: fib2 = fibs() ...: fib2.next() ...: for a, b in itertools.izip(fib1, fib2): ...: yield a+b ...: ...: In [3]: f=fibs() In [4]: [f.next() for i in range(10)] Out[4]: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor