<div dir="ltr"><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Den ons 20 jan. 2021 kl 15:42 skrev Raimo Niskanen <<a href="mailto:raimo%2Berlang-questions@erlang.org">raimo+erlang-questions@erlang.org</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I have vague feeling that this has been asked,<br>
but since I can not find it:<br>
<br>
How is nested fun()s handled?<br>
<br>
foo(Y) -><br>
    F = fun (X) -><br>
            Y = X + ^Y,<br>
            FF = fun (Z) -><br>
                     Z + ^Y<br>
                 end,<br>
            FF(Y)<br>
        end,<br>
    F(Y).<br>
<br>
Does the innermost Z + ^Y access the outermost Y from foo(Y), or the Y<br>
bound in F/1 i.e Y = X + ^Y?<br>
<br>
Is there a way to choose which of the outer Y:s to refer to from within FF/1?<br></blockquote><div><br></div><div>No, the ^X notation is only allowed in patterns, it is an error to use it elsewhere. It is only needed in patterns since they form the boundary between existing bindings and new bindings. While I could imagine ways to interpret ^X technically in expressions as well, like some kind of de Bruijn notation, I think such uses would lead to madness.</div><div> </div><div>        /Richard</div><div><br></div></div></div>