A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://mail.python.org/pipermail/python-dev/2003-January/032619.html below:

[Python-Dev] thunks (for all the fish)

[Python-Dev] thunks (for all the fish)ManuelM.Garcia ManuelM.Garcia
Thu, 30 Jan 2003 22:08:05 -0800
On Thu, 30 Jan 2003 19:28:33 -0800, news@manuelmgarcia.com (Manuel
Garcia) wrote:

>OK, a 'thunk' is a generalized generator created from an indented
>suite.  A 'thunk' lets us react to control statements inside the thunk
>(or the lack of control statements).
>
>   iter0 =3D thunk.make_g_iter( [global] [, local] )
(edit)
>There are some subtleties of global and local I am sure I am missing.

Oh yeah, global and local will probably come from the thunk itself.
When the thunk is created, a suitable global and local is attached.
Usually the global would be used as is, perhaps the local would be
modified with some extra pairs before passing it to
thunk.make_g_iter().

>    key, record =3D recordset_loop('rs1'):
>        if no_more_keys: return None, None
>        if key in skip_keys: continue
>        print key
>        print record
>        if key =3D=3D good_key: return key, record

Would something like this be helpful?:

    max_length =3D 25
    skip_keys =3D ['1234', '2345']
    double_keys =3D ['9876', '8765']
    g =3D rs1.recordset_to_generator(BOF=3D1, EOF=3D1):
        if list_length >=3D max_length: break
        if BOF: return 'AAA', None
        if EOF: return 'ZZZ', None
        if key in skip_keys: continue
        if key in double_keys:
            yield '%s-00' % (key,), record
            return '%s-01' % (key,), record
        else:
            return key, record

You would make a generator in this strange way, with a combination of
returns and yields.  You could use break and continue for the loop,
and booleans could be put in the local to help sneak in extra values.
Again, any 'try: finally:' logic could be hidden inside.

One problem is that all these 'extra' behaviors would be hard to
document, unless you gave a long list of examples for people who might
use a 'recordset_to_generator()' you created.



RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4