25
votes

I would like to do some web programming using functional programming. What decent web-frameworks exists for functional programming languages?

1
  • 1
    I know this isn't what you asked, but Javascript combined with Underscore.js supports a functional programming style very well.
    – user16764
    Feb 22, 2012 at 19:19

9 Answers 9

6
votes

Lift is an interesting framework for Scala. The practical advantage of Scala is that it can use any existing Java libraries.

11
votes

There are many many more (even I'm developing one in F#) but I think these (and Lift, already mentioned) are the most complete/popular/documented. I can't comment on Erlang frameworks.

9
votes

There's a list of web frameworks available for Erlang. Summarizing that list here:

Of those the two that look most of interest to me are webmachine and nitrogen. YMMV.

2
  • Was "[list]" supposed to be a link?
    – Adam Lear
    Feb 12, 2011 at 6:01
  • Oops. Yes it was. I'll fix that. Feb 12, 2011 at 6:02
8
votes

Noir is beautiful, functional and simple (in the Rich Hickey "Simple Made Easy" sense):

(defpage "/welcome" []
    "Welcome to Noir!")

(server/start 8080)

I particularly like the way that you can then build your entire web application just using function composition, supported with a few macros to enable a nice declarative DSL.

7
votes

Compojure is an open source web framework for the Clojure programming language.

http://en.wikibooks.org/wiki/Compojure

3
votes

As you have left any languages out of the question, I guess you accept multiple languages...

So for the language F# there exists FSharp.WebTools.

The F# Web Tools augment the F# distribution with tools to author homogeneous client/server/database web applications in one type-checked project. The modal distinctions between client and server are checked through the use of F# workflows, and LINQ can be used for database access. In the first version, parts of the application are dynamically served as JavaScript. Planned extensions include serving client-side portions as Silverlight code.

2
2
votes

I recommend looking into Erlang and yaws. Erlang is a lightweight functional programming language with a great set of features, good libraries and an active development community. Yaws is efficient and well matained.

1
  • Yes, I like Erlang and Yaws, but I'm looking for a decent framework.
    – Jonas
    Oct 1, 2010 at 9:34
1
vote

Snap is a nice and really fast web framework for Haskell.

a simple web development framework for unix systems, written in the Haskell programming language. Snap has a high level of test coverage and is well-documented. Features include:

  • A fast HTTP server library
  • A sensible and clean monad for web programming
  • An HTML-based templating system for generating pages...
0
0
votes

There is a comparison of Erlang web frameworks on Github:

https://github.com/evanmiller/ChicagoBoss/wiki/Comparison-of-Erlang-Web-Frameworks

I haven't played with all the frameworks listed there so I don't want to judge, but I've been using Zotonic quite extensively in my currently project and I can wholeheartedly recommend it. As far as I know it's the only Erlang framework which is not only a framework but also a full-blown CMS. So you can start easily with just the CMS features and then expand the website by adding your custom functionality using your own modules. In my case I am using it purely as a framework because at this moment the CMS features work only with PostgreSQL and I can't use a separate database. But even just as a framework it offers lots of features not always found in the other frameworks.

What's very nice is that the project is being very actively developed because the people behind Zotonic design and implement websites and they use it as their CMS of choice.

If I had to choose then I would probably give Zotonic the first chance, then ChicagoBoss, and then Nitrogen.

0

Not the answer you're looking for? Browse other questions tagged or ask your own question.