Actually, following from the idea that packing and unpacking variables should be delayed by default, it might make sense to use syntax like:
>>> a = *(2+2) >>> b = a + 1 Instead of >>> a = lazy 2+2 # or whatever you want the keyword to be >>> b = a + 1 That syntax sort-of resembles generator expressions, however; I usually like how python favors actual words over obscure symbol combinations for readability's sake. On Fri, Feb 17, 2017 at 10:57 AM, Abe Dillon <abedil...@gmail.com> wrote: > I'd like to suggest a shorter keyword: `lazy` > > This isn't an endorsement. I haven't had time to digest how big this > change would be. > > If this is implemented, I'd also like to suggest that perhaps packing and > unpacking should be delayed by default and not evaluated until the contents > are used. It might save on many pesky edge cases that would evaluate your > expression unnecessarily. > > On Fri, Feb 17, 2017 at 10:43 AM, Joseph Hackman <josephhack...@gmail.com> > wrote: > >> Agreed. I think this may require some TLC to get right, but posting here >> for feedback on the idea overall seemed like a good start. As far as I >> know, the basic list and dict do not inspect what they contain. I.e. >> >> d = {} >> d['a']= delayed: stuff() >> b=d['a'] >> >> b would end up as still the thunk, and stuff wouldn't be executed until >> either d['a'] or b actually is read from. >> >> -Joseph >> >> > On Feb 17, 2017, at 11:34 AM, Chris Angelico <ros...@gmail.com> wrote: >> > >> >> On Sat, Feb 18, 2017 at 3:29 AM, Joseph Hackman < >> josephhack...@gmail.com> wrote: >> >> ChrisA: I am not sure about collections. I think it may be fine to not >> special case it: if the act of putting it in the collection reads anything, >> then it is evaluated, and if it doesn't it isn't. The ideal design goal for >> this would be that all existing code continues to function as if the change >> wasn't made at all, except that the value is evaluated at a different time. >> >> >> > >> > Yeah, I'm just worried that it'll become useless without that. For >> > instance, passing arguments to a function that uses *a,**kw is going >> > to package your thunk into a collection, and that's how (eg) the >> > logging module will process it. >> > >> > It's not going to be easy to have a simple AND useful definition of >> > "this collapses the waveform, that keeps it in a quantum state", but >> > sorting that out is fairly key to the proposal. >> > >> > ChrisA >> > _______________________________________________ >> > Python-ideas mailing list >> > Python-ideas@python.org >> > https://mail.python.org/mailman/listinfo/python-ideas >> > Code of Conduct: http://python.org/psf/codeofconduct/ >> _______________________________________________ >> Python-ideas mailing list >> Python-ideas@python.org >> https://mail.python.org/mailman/listinfo/python-ideas >> Code of Conduct: http://python.org/psf/codeofconduct/ >> > >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/