views:

552

answers:

9

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!

+13  A: 

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
emaster70
shahkalpesh
So Erlang (since 1986) and Haskell (since 1990) are still considered "newly developed" ;)
jitter
@shahkalpesh: F# was fairly easy to learn. Scala is pretty simple but not as intuitive and not as innovative, imo. I never really liked Newspeak so I quit it pretty soon. Erlang is very powerful but I didn't cope well with its syntax, didn't find it easy. Haskell has a good syntax, it's very intuitive but the fact that it's pure can take some time if you're used to programming with imperative languages. Once you get used to it, though, it's cool. If with easy to start with you include get the tools etc, anyway, F# is unbeatable: simple language, great tools!
emaster70
@jitter: maybe not newly developed but definitely in the making
kotlinski
Clojure is designed for multi-core concurrency, Erlang is best for distributed computing.
Arthur Ulfeldt
+7  A: 

Would like to add OCaml to the mix. I was attracted to it because it has a strong focus on performance. If I understand it right, F# is derived from OCaml.

But it is not just functional, it's well suited to imperative programming aswell.

kotlinski
+2  A: 

Erlang, OCaml, Haskell, Scheme and domain-specific programming languages like R (statistics),Mathematica (symbolic math), J and K (financial analysis), and XSLT (XML)

joe
+7  A: 

Haskell has been around for a while, and a whole lot of basic stuff (enough for writing solid production applications) is done, but in many ways it's still an academic language. This is a beautiful thing, really: as a commercial programmer, I can get my job done well, yet I've got the ability to dip into some of the more interesting concepts and techniques that are not available in other languages without switching into dialects where I can't deploy my day-to-day code.

When programming in Haskell, it's fascinating to see the future so close that you can touch it.

Curt Sampson
"When programming in Haskell, it's fascinating to see the future so close that you can touch it." made me smile, feel good and gave me a great start of the day.
AnnaR
+5  A: 

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!

Norman Ramsey
Scala is 6 years old already. New compared to some, perhaps.
skaffman
Asking out of curiosity: why isn't Haskell the new Haskell? I thought one of the goals in designing Haskell was for it to be the 'playground' for new functional programming research... is that true, and has it failed?
ShreevatsaR
I think there's years of mileage left in Haskell, and there continue to be interesting new ideas, like type families and Data Parallel Haskell. But these days Haskell is pretty mainstream, with books and everything, so it's no longer the 'next new thing'.
Norman Ramsey
With Scala it's not just the years, it's the combination of years with new ideas.
Norman Ramsey
A: 

Well, if you want really new, try Babel-17. Only catch: there is no implementation of it yet :-) But there is a spec. Check out http://www.babel-17.com .

Steven Obua
+1  A: 

Functional programming has now been adopted in the mainstream so what was formerly an academics-only drive has now split into academic and industrial implementations.

F# is a high profile example of an industrial functional language in development (here is an example of John Conway's Game of Life with GUI written in 32 lines of F#, here is my book on F#). Others include Clojure by Rich Hickey and HLVM by myself.

Recent high profile functional languages from academia are ATSLang and Scala.

Jon Harrop
A: 

A new functional language with a main focus on metaprogramming:

http://www.meta-alternative.net/mbase.html

Some examples: http://www.meta-alternative.net/pfront.pdf

SK-logic
+2  A: 

Nemerle is a functional, statically typed language with extensive metaprogramming support for .NET. Like F#, it was inspired by ML, but it's syntax follows closely to C#, making it much more readable. Type inference in Nemerle is even more powerful than ML's, allowing it to infer types from usage in presence of overloading.

Don Reba