Things like htmlentities, escaping functions, wrappers for requests, etc. could be a nice exercise for you to implement yourself in Scheme, since you say you are just starting out learning scheme.
–
erjiangAug 14 '09 at 19:53

12 Answers
12

Racket has everything that you need. See the Racket web server tutorial and then the documentation. The web server has been around for a while, and it has a lot of features. Probably the only thing that is not included is a mysql interface, but that exists as a package on PLaneT (Racket package distribution tool).

UPDATE: Racket now comes with DB support, works with several DBs including mysql.

Seconded. The continuation interface is interesting too -- don't worry if it looks confusing though; the rest of the servlet interface still works without it. Wasn't aware of the mysql interface, I'll check that out, thanks!
–
AaronAug 14 '09 at 4:27

Clojure is a dynamic programming language that targets the Java Virtual Machine. [...] Clojure provides easy access to the Java frameworks, with optional type hints and type inference, to ensure that calls to Java can avoid reflection.

Clojure is a dialect of Lisp, and shares with Lisp the code-as-data philosophy and a powerful macro system.

Interop with Java is straightforward in Clojure, so you can re-use any existing Java libraries as you need. I'm sure there are plenty that are useful for web development.

You can do web development with guile scheme. Its standard library includes the (sxml simple) module that is very useful for html generation, manipulation, and parsing. The guile-www library adds support for http, cgi, etc. The guile-dbi library provides access to MySQL and other databases. With these building blocks, you can implement everything from simple cgi scripts to web applications with their own HTTP server.

It has examples for pretty much most of basic web development, including DB access, authentication, HTML generation and templating.

Since the Restas documentation is pretty much out of date, my tutorial is the closest thing to up to date docs.

Shows a few of the more advanced features, like policies, which allow you to write pluggable interfaces, for instance you can write a data store layer, and write back-ends for different storage mechanisms with relative ease, the module system which allows you to write reusable components, like auth frameworks and things like that.

It covers things like installing lisp, setting up the ASDF build system and the quicklisp package manager etc.

It's free online, and as soon as I finish it it will be free on leanpub as well. The source is on https://github.com/pvlpenev/lispwebtales under a CC license, the source code is MIT. Not all of it is published yet, and I'm in the process of revising.

Paul Graham (and friends) made a lisp dialect specifically for writing basic web applications. It's called Arc, and you can get it at arclanguage.org.

It's probably not suited for really big complex websites and I'm not sure what state it's database support is at but Paul Graham knows how to write web applications in lisp, so Arc will make the HTTP/HTML part easy for you while you spend most of your brain cycles learning the lisp way.

I use my own, customized version of Scheme, derived from MzScheme. It has a new, simple web-application framework, a built-in web-server (not the one that comes with MzScheme) and ODBC libraries. (http://spark-scheme.wikispot.org/Web%5Fapplications). The documentation may not be exhaustive, as this is more of a personal tool. But there are lots of sample code in the code repository.