you've omitted code to control the output content-type and the associated response headers (xhtml vs html)
Add this single line to your WITH-HTML macro.
(setf (html-mode) :xml) ; for XML or :sgml for HTML.
http://weitz.de/cl-who/#html-modeyou've removed text, formatting from the form page
Add one line for a CSS file inclusion and style it to your heart's content. In real web apps I use html-template to template the code, and do not sloppily generate html like I did with the example; but I had to do what the clojure code did, in the same manner.
you've discarded the results page altogether
I am printing the results on the same page. Yeah, that's a better usability.
you aren't properly distinguishing between GET and POST
Says who? the DEFINE-EASY-HANDLER takes arguments, which correspond to the submitted form elements, via GET or POST. In fact, that macro also does some type conversion for you as well; since you declared your parameters to be integers they will be converted to integers when you get them, and not remain strings. This stuff is built into the web server.
http://weitz.de/hunchentoot/#define-easy-handler
If you're gonna implement a full REST then you have no business generating your display html from within your container.
What else do you think I omitted?