Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

New functional languages [closed]

Tags:

Functional programming has been around since at least 1958 (creation of Lisp), but is experiencing a renaissance now with old functional languages being dusted off and new functional languages being created.

Which functional languages are there that are newly developed or are in the making?

I realize that you can write purely functional programs in most high level languages, so with functional languages I imply languages that are specifically designed for functional programming such as F#.

If you have links to tutorials, wikis or code examples I encourage you to add them to your answer!

like image 987
AnnaR Avatar asked Jun 23 '09 08:06

AnnaR


People also ask

Which languages have closure?

Languages which support closure (such as JavaScript, Swift, and Ruby) will allow you to keep a reference to a scope (including its parent scopes), even after the block in which those variables were declared has finished executing, provided you keep a reference to that block or function somewhere.

Are closures used in functional programming?

Functional programming languages (for e.g. LISP etc.) use closures extensively. In case of JavaScript, one practical and common usage of closures is in the usage of data hiding (we will see how data hiding works in the JavaScript world with the usage of closures) or in callbacks.

Are closures functional?

Introduction to JavaScript closures. In JavaScript, a closure is a function that references variables in the outer scope from its inner scope. The closure preserves the outer scope inside its inner scope. To understand the closures, you need to know how the lexical scoping works first.

What does closure mean in programming?

A closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment). In other words, a closure gives you access to an outer function's scope from an inner function.


2 Answers

Here's a short list of those I've tested so far (except for F#, which you've already mentioned):

  1. Haskell (statically typed, pure) - Mind the free ebook Real World Haskell, with everything you need to know about it
  2. Clojure (dynamically typed, unpure)
  3. Scala (statically typed, unpure) - full (two way) interop with Java
  4. Newspeak
  5. Erlang - made for easily handling concurrency
like image 134
em70 Avatar answered Oct 06 '22 00:10

em70


I'm amused that ancient work like ML (Caml), Haskell, and Erlang is being passed off as "new." Scala is genuinely new, and F# is an attempt to adapt an old language ML into the .NET framework and is bound to be interesting.

If you want something really new, Agda is "the new Haskell". Agda incorporates the many lessons learned from 20-year-old languages like Haskell and 30-year-old languages like ML, and it pushes the envelope with the very latest work in type systems. Guaranteed to make your head explode or double your money back!

like image 31
Norman Ramsey Avatar answered Oct 06 '22 00:10

Norman Ramsey