Try Haste & HPlayground client-side framework.

Create, compile to HTML+JavaScript and execute your Haskell programs in the browser

Run this locally or create your own heroku instance: code & docs

Save your compliled program (HTML+Javascript) by downloading the HTML generated page , which contains all the JScript necesary for running it locally

Thanks to Anton Ekblad for his wonderful haste compiler

NOTE: this IDE does not execute Haste programs with server side (using Haste.App)

NOTE 2: From time to time Heroku reset the instance and erase your files

Create a new program

Compile a Haste project from a Git repository

Or you can modify and rename one of these examples:

none-copy.hs
...
more
palindrome.hs
To search palindromes: one box present the other's reversed. It is also an examp...
more
haste-canvas-simple.hs
Adapted from the canvas-simple from the Haste repository at:
https://github.com/...
more
haste-calculator.hs
calculator example taken from the haste examples at:
https://github.com/valderma...
more
foreign.hs
Haste calling JScript calling Haskell
based on https://github.com/coopernurse/ha...
more
spreadsheet.hs
Example of spreadsheet-like behaviour using loeb iteration
http://blog.sigfpe.co...
more
gallery.hs
this example show a image gallery. It advances each 20 seconds and by pressing t...
more
examples.hs
Many small examples put together to show how easy is to compose hplayground elem...
more
counter.hs
Two counters. One is pure and recursive, the other is stateful
...
more
todo.hs
the todoMVC application using the hplayground client framework.
see http://todo...
more
PerchLikeJQuery.hs
Example of the new Perch forElems primitive that perform JQuery-like modificatio...
more
hplay-sockets.hs
Hplayground WebSockets have de-inversion of control. it uses wsAsk for syncronou...
more
ajax.hs:
Hplayground Ajax control is de-inverted. This means that ajax request follows the
normal flow. there is no need to se hup a response handler for each request
ajax is just a monadic statement in the Widget monad.

This example make use of the web service por compilation of tryplayground and
show the result

The service in the server is "compileServ" at 
https://github.com/agocorona/tryhplay/blob/master/Main.hs

execute alone | edit & compile & execute | delete

form-validation.hs
Example of form validation with tree different presentation of error:
As a inlin...
more
mybudget.hs
A personal budget application example
It uses Google Graphics to draw a chart
...
more
mouse.hs
show mouse events 
...
more
helloworld.hs
The hello world program using hplayground
...
more
haste-concurrency.hs
adapted from the concurrency example form haste at:
https://github.com/valderman...
more
sumrecursive.hs
Sum recursively n numbers. When enters 0, present the result
...
more
at.hs
relocating the output within a div using 'at'

classical presentation of a sum ...
more
console.hs
What a basic console application would look like using hplayground
...
more
questions.hs
Fields of a form appear in sequence. 
Some of the fields trigger events instantl...
more
pascaltriangle.hs
pascal triangle http://www.haskell.org/haskellwiki/Blow_your_mind
...
more
widgets.hs
links, radio buttons, option buttons etc
...
more
sumtwonumbers.hs
sum two numbers
...
more
hello-haste.hs
This program will ask the user for her name, and echo a greeting back into
this ...
more
sumfold.hs
Sum three numbers and append the result using a fold
...
more
none.hs
...
more
sumcell.hs
 sum recursively n numbers, but remember the previous entries when one entry is ...
more
drawcanvas.hs
This example draw a function of x between 10 and -10. You can define the functio...
more
fact.hs
factorial 
...
more