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/