In Common Lisp ( without cheating or handwaving; this is it ): (defpackage :add-nums (:use :cl :hunchentoot :cl-who)) (in-package :add-nums) (defmacro with-html (&body body) `(with-html-output-to-string (*standard-output* nil :prologue t :indent t) ,@body)) (define-easy-handler (add-nums :uri "/add-nums") ((a :parameter-type 'integer) (b :parameter-type 'integer)) (with-html (:html (:head (:title "Add two numbers"))…
* you've omitted code to control the output content-type and the associated response headers (xhtml vs html)
* you've removed text, formatting from the form page
* you've discarded the results page altogether
* you aren't properly distinguishing between GET and POST
Do the same to the clojure code and it'll be about the same length as well.