Archive for July 13th, 2006

Writing AJAX applications in Haskell

How easy is it to write an AJAX application in Haskell? Very easy indeed. Here’s a little example of an AJAX server that echoes JSON requests:

module Main where

import Data.Maybe (fromJust)
import JSON
import Network.NewCGI

jsonEcho :: CGI CGIResult
jsonEcho = do jsonString <- getInput "json"
              setHeader "Content-type" "application/x-javascript"
              output $ (stringify . fromJust . parse . fromJust) jsonString

main = runCGI jsonEcho

To get this to compile you need the following haskell libraries: Fast Packed Strings (needed by haskell-cgi), XHTML combinators (needed by haskell-cgi), haskell-cgi, and JSON.hs

The resulting executable can be installed on any web server that supports cgi scripts. For my tests I configured apache with cgi execution enabled in user directories. You can download the little example app here. The client code employs the json and prototype Javascript libraries.

The JSON.hs file included in this distribution is a slightly modified version of the one listed above which adds support for Ints.

3 comments July 13th, 2006 matthias

Calendar

July 2006
M T W T F S S
« Jun   Aug »
 12
3456789
10111213141516
17181920212223
24252627282930
31  

Posts by Month

Posts by Category