in reply to Re: uninitialised variable
in thread uninitialised variable

I don't see how. A closure is a function that returns another function, which has access to variables in its outer scope. I don't see that here.

Replies are listed 'Best First'.
Re^3: uninitialised variable (definition "closure")
by LanX (Saint) on Dec 30, 2016 at 14:39 UTC
    > A closure is a function that returns another function,

    No a closure is (in normal speak) only a function which is accessing variables outside from it's own body at declaration time.

    The surrounding is not necessarily "another function" and the closure function is not necessarily "returned".

    Technically the combination

    • function plus
    • "enclosed" variables

    is called closure!

    see Closure_(computer_programming)

    Most people ignore these variables as implementation detail and keep concentrating on the "closure function" calling it simply the closure.

    Cheers Rolf
    (addicted to the Perl Programming Language and ☆☆☆☆ :)
    Je suis Charlie!

    update

    Here an example of getter and setters implemented as closures which don't fall under your definition.

    { my $a; sub get_a { return $a } sub set_a { $a = shift } }

    Update:

    more examples here perlfaq7#What's-a-closure%3f