Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

Re: MOPT-04 - identification, part 2

by theorbtwo (Prior)
on Jan 07, 2003 at 02:12 UTC ( #224823=note: print w/ replies, xml ) Need Help??

in reply to MOPT-04 - identification, part 2

One quick question: "The set of all strings we can derive from a single axiom by repeatedly applying a single rule is called a transitive closure, or just a closure." Where does the name "closure" come from? How is this related to a variable-binding-capturing "closure", as in &closure in

{ my $foo; sub closure { $foo++ } }
(I know, I'm getting into lvalues here.)

Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).

Comment on Re: MOPT-04 - identification, part 2
Download Code
Re2: MOPT-04 - identification, part 2
by mstone (Deacon) on Jan 08, 2003 at 01:10 UTC
    • Where does the name "closure" come from?

    I just realized this morning that I'd used the word 'closure' without explaining the two different meanings of that word.. my bad. Set closures and 'value capturing' closures are entirely different creatures, which trace their origins back to different mathematical definitions for the word 'closed'.

    Regarding set closures, we say that a set S is closed for a certain operation '.' (where '.' is the traditional symbol for some unspecified operation) if 'a.b' is a member of S for every a and b in S. A set is open if a and b are in S, but 'a.b' isn't.

    The set closure of S for 'a' under '.' is the smallest closed subset of S that contains a for operation '.': {'a', 'a.a', 'a.a.a', ...}

    • How is this related to a variable-binding-capturing "closure"

    Different critter entirely.. while the set theory people were coming up with their definition of the word 'closed', the predicate calculus people were using it to mean something else.

    Predicate calculus (aka: formal logic) revolves around statements called sentences. Each sentence indicates some relationship between basic entities, known as predicates. Without getting too technical, a predicate is a statement that has a truth value, and the sentence says something about the relationship between the truth values of its predicates.

    Sentences can also contain variables, which work pretty much like function parameters. A sentence where every variable is bound to some predicate is called a closed sentence. A sentence with an undefined variable is called an open sentence.

    A 'value capturing' closure binds an entity to one of a function's free variables, so in predicate calculus terms, it closes one variable in the function.. hence the term closure.

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others pondering the Monastery: (4)
As of 2014-07-13 06:34 GMT
Find Nodes?
    Voting Booth?

    When choosing user names for websites, I prefer to use:

    Results (247 votes), past polls