CSC/ECE 517 Fall 2010/ch1 1b YL: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
|||
Line 4: | Line 4: | ||
Before discussing semantic and implementation differences of closure implementation in different languages, closures should be discussed first. | Before discussing semantic and implementation differences of closure implementation in different languages, closures should be discussed first. | ||
<blockquote>A closure is a first-class function with free variables that are bound in the lexical environment | <blockquote>A closure is a first-class function with free variables that are bound in the lexical environment. [http://en.wikipedia.org/wiki/Closure_%28computer_science%29 Closures:Wikipedia]</blockquote> | ||
Now in this definition first-class function is nothing but the function which is treated as first-class objects. | Such a function is said to be "closed over" its free variables. Now in this definition first-class function is nothing but the function which is treated as first-class objects. Specifically, this means that the language supports constructing new functions during the execution of a program, storing them in data structures, passing them as arguments to other functions, and returning them as the values of other functions. [http://en.wikipedia.org/wiki/First-class_function] | ||
== Different implementations of closure == | == Different implementations of closure == |
Revision as of 04:14, 7 September 2010
Closures in Ruby vs. closures in other languages
Introduction
Before discussing semantic and implementation differences of closure implementation in different languages, closures should be discussed first.
A closure is a first-class function with free variables that are bound in the lexical environment. Closures:Wikipedia
Such a function is said to be "closed over" its free variables. Now in this definition first-class function is nothing but the function which is treated as first-class objects. Specifically, this means that the language supports constructing new functions during the execution of a program, storing them in data structures, passing them as arguments to other functions, and returning them as the values of other functions. [1]