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:

sumfold.hs
Sum three numbers and append the result using a fold
...
more
mouse.hs
show mouse events 
...
more
helloworld.hs
The hello world program using hplayground
...
more
widgets.hs
links, radio buttons, option buttons etc
...
more
haste-concurrency.hs
adapted from the concurrency example form haste at:
https://github.com/valderman...
more
hello-haste.hs
This program will ask the user for her name, and echo a greeting back into
this ...
more
haste-calculator.hs
calculator example taken from the haste examples at:
https://github.com/valderma...
more
ajax.hs
Hplayground Ajax control is de-inverted. This means that ajax request follows th...
more
test.hs
...
more
pascaltriangle.hs
pascal triangle http://www.haskell.org/haskellwiki/Blow_your_mind
...
more
none.hs
...
more
spreadsheet.hs
Example of spreadsheet-like behaviour using loeb iteration
http://blog.sigfpe.co...
more
console.hs
What a basic console application would look like using hplayground
...
more
fact.hs
factorial 
...
more
questions.hs
Fields of a form appear in sequence. 
Some of the fields trigger events instantl...
more
gallery.hs
this example show a image gallery. It advances each 20 seconds and by pressing t...
more
at.hs
relocating the output within a div using 'at'

classical presentation of a sum ...
more
foreign.hs
Haste calling JScript calling Haskell
based on https://github.com/coopernurse/ha...
more
sumrecursive.hs
Sum recursively n numbers. When enters 0, present the result
...
more
hplay-sockets.hs
Hplayground WebSockets have de-inversion of control. it uses wsAsk for syncronou...
more
drawcanvas.hs
This example draw a function of x between 10 and -10. You can define the functio...
more
htryhplay.hs
The browser side part of tryplayground coded as a single page hplayground app.

...
more
counter.hs
Two counters. One is pure and recursive, the other is stateful
...
more
form-validation.hs
Example of form validation with tree different presentation of error:
As a inlin...
more
examples.hs
Many small examples put together to show how easy is to compose hplayground elem...
more
mybudget.hs
A personal budget application example
It uses Google Graphics to draw a chart
...
more
palindrome.hs
To search palindromes: one box present the other's reversed. It is also an examp...
more
sumtwonumbers.hs
sum two numbers
...
more
sumcell.hs
 sum recursively n numbers, but remember the previous entries when one entry is ...
more
haste-canvas-simple.hs
Adapted from the canvas-simple from the Haste repository at:
https://github.com/...
more
PerchLikeJQuery.hs
Example of the new Perch forElems primitive that perform JQuery-like modificatio...
more
todo.hs
the todoMVC application using the hplayground client framework.
see http://todo...
more