CSC/ECE 517 Fall 2010/ch1 1b YL

From Expertiza_Wiki
Jump to navigation Jump to search

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. In this definition first-class function is 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] So closure can be explained as nothing but the behavior or in programming language function which can be passed around like any other argument and still remembering the original context where these closures are declared first. This way it breaks out of the standard function concept where the variables inside functions can be referenced within the scope of the function. Instead in closures these variables can be referred out of the scope of the local functions.

Different implementations of closure

Closures in Ruby

Closures in Lisp

Closures in ML

Closures in C

Closures in C++

Closures in Java

Closures in Javascript

Comparison

Conclusion