En Sun, 23 Dec 2007 03:55:07 -0300, John Machin <[EMAIL PROTECTED]> escribió: > On Dec 23, 2:39 pm, "Terry Reedy" <[EMAIL PROTECTED]> wrote:
>> I will presume you are merely joking, but for the benefit of any >> beginning >> programmers reading this, the closure above is a standard functional >> idiom >> for partial evaluation of a function (in this this, re.search(crex,txt)) > > Semi-joking; I thought that your offering of this: > > def searcher(rex): > crex = re.compile(rex) > def _(txt): > return crex.search(txt) > return _ > foo_searcher = searcher('foo') > > was somewhat over-complicated, and possibly slower than already- > mentioned alternatives. The standard idiom etc etc it may be, but the > OP was interested in getting overhead out of his re searching loop. > Let's trim it a bit. > > step 1: > def searcher(rex): > crexs = re.compile(rex).search > def _(txt): > return crexs(txt) > return _ > foo_searcher = searcher('foo') > > step 2: > def searcher(rex): > return re.compile(rex).search > foo_searcher = searcher('foo') > > step 3: > foo_searcher = re.compile('foo').search Nice derivation! Like the word-stairs game: love -> rove -> rave -> have -> hate -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list