LYCOS RETRIEVER Beta Retriever Home  |  What is Lycos Retriever?   
Functional Programming: Languages
built 639 days ago
Within the Foundations of Programming group at the University of Nottingham are a number of people working on Functional Programming projects, mainly using Haskell. These projects involve reasoning about functional programs, new functional languages or features, the implementation of new systems using functional languages, and even the implementation of new functional languages. Members of the group are ... involved in teaching Haskell, and computer aided formal reasoning using the Epigram (interactive dependently typed) language, to undergraduates. Specific research interests of the members include the following:
Functional programming can be contrasted with imperative programming. Functional programming appears to be missing several constructs often (though incorrectly) considered essential to an imperative language, such as C or Pascal. For example, in strict functional programming, there is no explicit memory allocation and no explicit variable assignment. However, these operations occur automatically when a function is invoked; memory allocation occurs to make space for the parameters and the return value, and assignment occurs to copy the parameters into this newly allocated space and to copy the return value back into the calling function. Both operations can only occur on function entry and exit, so side effects of function evaluation are eliminated. By disallowing side effects in functions, the language provides referential transparency.
Source:
Functional programming languages are based on the lambda-calculus. The lambda-calculus grew out of an attempt by Alonzo Church and Stephen Kleene in the early 1930s to formalize the notion of computability (... known as constructibility and effective calculability). It is a formalization of the notion of functions as rules (as opposed to functions as tuples). As with mathematical expressions, it is characterized by the principle that the value of an expression depends only on the values of its subexpressions. The lambda-calculus is a simple language with few constructs and a simple semantics. But, it is expressive; it is sufficiently powerful to express all computable functions.
Source:
Functional programming supports functions as first-class objects, sometimes called closures, or functor objects. Essentially, closures are objects that act as functions and can be operated upon as objects. Similarly, FP languages support higher order functions. A higher order function is able to take another function (indirectly, an expression) as its input argument, and in some cases it may even return a function as its output argument. These two constructs together allow for elegant ways to modularize programs, which is one of the biggest advantages of using FP.
Source:
Lambda calculus could be considered the first functional programming language, though it was never designed to actually be executed on a computer. Lambda calculus is a model of computation designed by Alonzo Church in the 1930s that provides a very formal way to describe function evaluation. The first computer-based functional programming language was LISP, developed by John McCarthy while at the Massachusetts Institute of Technology in the late 1950s. While not a purely functional programming language, LISP did introduce most of the features now found in modern functional programming languages. Scheme was a later attempt to simplify and improve LISP. In the 1970s the language ML was created at the University of Edinburgh, and David Turner developed the language Miranda at the University of Kent.
Source:
Functional programming is a style of programming that emphasizes the application of functions to solve computing problems. This is in contrast with imperative programming, which emphasizes changes in state and the execution of sequential commands. If you want use a functional-only programming language, you should consider something like Haskell. If ... you like Groovy but want to apply some functional style magic, read on.
SEARCH
MORE ABOUT