A RetroSearch Logo

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

Search Query:

Showing content from https://mail.python.org/pipermail/python-dev/2003-February/032890.html below:

[Python-Dev] thunks

[Python-Dev] thunksAndrew McGregor andrew@indranet.co.nz
Tue, 04 Feb 2003 13:03:34 +1300
--==========1968576916==========
Content-Type: text/plain; charset=us-ascii; format=flowed
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline


--On Monday, February 03, 2003 11:53:50 -0500 Guido van Rossum=20
<guido@python.org> wrote:

> I still don't have time to read this thread :-(, but I had a new idea
> that I'd like to fly here.
>
> If we want to support thunks that blend into the scope of their
> environment as well as thunks that introduce a new local scope, here's
> one possible way to do it:
>
> Thunk blending in:
>
>   [<variable> =3D] <expression>:
>     <block>
>
> Thunk introducing a new local scope:
>
>   [<variable> =3D] <expression> lambda:
>      <block>
>
> (Never mind the ugly things I've said about lambda in the past. :-)
>
> I'm confident that the parser can distinguish these, and I'm confident
> that the scope blending can be implemented using nested-scope cells.
>
> Adding formal parameters to the second case would go like this:
>
>   [<variable> =3D] <expression> lambda <arguments>:
>      <block>

+1 on all these :-)

Great stuff.

> One concern I have in both cases: I think there are use cases for
> wanting more than one block.  Glyph's example wants to define various
> callbacks for a remote call, and this would need multiple blocks.  I
> think the syntax for this would have to use some kind of keyword-based
> continuation, e.g.
>
>   [<variable> =3D] <expression> lambda:
>     <block>
>   and <expression> lambda:
>     <block>
>   ...
>
> Disclaimer: this is a half-baked idea.
>
> --Guido van Rossum (home page: http://www.python.org/~guido/)

What about:

with:
    n1 =3D x1 lambda:
        <block>
    n2 =3D x2 lambda:
        <block2>
do expression

as a way to pass keyword arguments to expression?  That would do it.  The=20
only issue would then be passing multiple blocks with the same name, a la=20
try: except: except:, but I don't think that's to bad a thing to lose.

Andrew
--==========1968576916==========
Content-Type: application/pgp-signature
Content-Transfer-Encoding: 7bit

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (GNU/Linux)

iD8DBQE+PwNWHamGxvX4LwIRAvC2AJ9JU/lfC3JvrWz3xO5OagByj+5MHACfXusZ
IgFRlgFgNdf6x3VSWmDUvMM=
=+nwk
-----END PGP SIGNATURE-----

--==========1968576916==========--




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