Beefy Boxes and Bandwidth Generously Provided by pair Networks
Come for the quick hacks, stay for the epiphanies.
 
PerlMonks  

Definition of a Closure

by perrin (Chancellor)
on Oct 11, 2001 at 18:09 UTC ( [id://118218]=note: print w/replies, xml ) Need Help??


in reply to Re: Re: (Ovid) Re: Sub Definitions Within Subs: Best Way to Exploit
in thread Sub Definitions Within Subs: Best Way to Exploit

Your explanation makes sense, but it isn't correct. Based on the number of times I've had this conversation, I'd say there is massive misunderstanding around the word "closure" in the Perl community.

Here's a definition of closure from Damian Conway:

"In Perl, a closure is just a subroutine that refers to one or more lexical variables declared outside the subroutine itself" - OO perl, p 56.

I grabbed that quote from a post on the Perl6 list, but I've used that as my standard definition of closure ever since the book came out. It's really the only one I've seen that makes sense.

Note that merlyn also agrees with me, as shown here in this post to the mod_perl list.

Replies are listed 'Best First'.
Re: Definition of a Closure
by htoug (Deacon) on Oct 12, 2001 at 12:33 UTC
    Quite true, but you should also include the last sentence of the section:

    "That's all there is to a closure: a subroutine that preserves any lexical variables it's using, even after they become invisible everywhere else." OO-Perl pg.57

    Closures are only interesting (for some definition of interesting) when the lexical is invisible.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://118218]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (3)
As of 2024-04-20 04:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found