#3, I believe that, exactly because $a and $b are globals, closing over them doesn't make much sense.
Yes. I musta been getting punch drunk when I said "It's perfectly possible to close over package globals in other instances,".
'Closing' over a global, just means referencing a global. You just get whatever value it currently has, if any. In this case none, because the reduce code localises it.
As an aside, I've never used assignment to $a in reduce - I thought the assignment was implicit
You might be surprised at the other things I tried before getting it to work in 5.8.8 :)
The affect is the same either way. reduce{ $a + $b }... and reduce{ $a += $b }... both end up with $a = $a + $b after each iteration.
The latter just makes it a little clearer to the casual observer maybe?
that second inner block, .... On 5.8.5, I get a "deep recursion" in the call to $combo if I remove that second block.
Recursion? There shouldn't be any recursion.
But hey! If we could work out what is going on and formalise it, we'd have achieved the Y Combinator without all those messy duplicate anonymous subs and extra parameters :)
In reply to Re^2: Bugs? Or only in my expectations?
by BrowserUk
in thread Bugs? Or only in my expectations?
by BrowserUk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |