
On Sun, Oct 24, 2021 at 2:52 PM David Mertz, Ph.D. <david.mertz@gmail.com> wrote:
On Sat, Oct 23, 2021, 11:46 PM David Mertz, Ph.D.
def f(x=defer: a + b): a, b = 3, 5 return x
Would this return 8, or a defer-expression? If 8, then the scope isn't truly dynamic, since there's no way to keep it deferred until it moves to another scope. If not 8, then I'm not sure how you'd define the scope or what triggers its evaluation.
Oh... Keep in mind I'm proposing a strawman deliberately, but the most natural approach to keeping an object deferred rather than evaluated is simply to say so:
def f(x=defer: a + b): a, b = 3, 5 fn2(defer: x) # look for local a, b within fn2() if needed # ... other stuff return x # return 8 here
How would it know to look for a and b inside fn2's scope, instead of looking for x inside fn2's scope? ChrisA