Functional programming has its roots in lambda calculus, a formal system developed in the 1930s to investigate computability, the Entscheidungs problem, function definition, function application and recursion. Many functional programming languages can be viewed as elaborations on the lambda calculus, where computation is treated as the evaluation of mathematical functions and avoids state and mutable data. In the other well known declarative programming paradigm, logic programming, relations are at the base of respective languages.
Functional design may seem like an odd constraint to work under. Why should you avoid objects and side effects? There are theoretical and practical advantages to the functional style:
One of the things that became clear in the responses was that many people who were debating whether a given language X was or was not a functional programming language didn’t have a good idea of what a functional programming language was. The situation was made worse, I think, by the fact that many of the key terms in the programming industry do not come with rigorous definitions and thus tend to shade into buzzwords at the edges. This is not the case with functional- there is a very rigorous definition of what is meant by "functional" and I’d like to introduce people to it.
Charity is a categorical programming language currently being developed by The Charity Development Group in The Department of Computer Science at The University of Calgary, Canada. Charity is functional in style. That is, programmers familiar with declarative paradigms (functional and logic programmers) should find Charity easy to grasp.
Clean is a general purpose, state-of-the-art, pure and lazy functional programming language designed for making real-world applications. Clean is based on the concept of mathematical functions. Clean is a pure functional language, there is not such a thing as an assignment.
Curry is a functional logic programming language which is based on the Haskell Language.
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. Haskell is unique in two ways. First, it is a pure functional programming language.
CURL is a tool to transfer data from or to a server using one of the protocols (DICT, FILE, FTP, FTPS, GOPHER, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, TELNET and TFTP). CURL command is designed to work without user interaction. curl offers a busload of useful tricks like proxy support, user authentication, FTP upload, HTTP post, SSL connections, cookies, file transfer resume, Metalink, and more.
CAL is an event processing language that is used for extend Pro Audio and Professional with custom editing commands. It was started as a Musical Instrument Digital Interface equencer made by Twelve Tone systems.