itertools, functools, file enhancement ideas

Alexander Schmolck a.schmolck at gmail.com
Sun Apr 8 06:27:24 EDT 2007


aleax at mac.com (Alex Martelli) writes:

> > 4. functools enhancements (Haskell-inspired):
> >    Let f be a function with 2 inputs.  Then:
> >       a) def flip(f): return lambda x,y: f(y,x)
> >       b) def lsect(x,f): return partial(f,x)
> >       c) def rsect(f,x): return partial(flip(f), x)
> > 
> >    lsect and rsect allow making what Haskell calls "sections".  Example:
> >       # sequence of all squares less than 100
> >       from operator import lt
> >       s100 = takewhile(rsect(lt, 100), (x*x for x in count()))
> 
> Looks like they'd be useful, but I'm not sure about limiting them to
> working with 2-argument functions only.

How's
    
    from mysterymodule import resect
    from operator import lt
    takewhile(rsect(lt, 100), (x*x for x in count()))

better than 

    takewhile(lambda x:x<100, (x*x for x in count()))

Apart from boiler-plate creation and code-obfuscation purposes?

'as







More information about the Python-list mailing list