#lang web-server/insta
(define (page . lst)
(response/xexpr
`(html (body ,@(map
(lambda(x) (if (number? x)(~a x) x))
lst)))))
(define (get-num-core prompt)
(lambda (k)
(page
`(form ([action ,k])
,prompt
(input ([type "text"][name "n"]))))))
(define (get-num prompt)
(string->number
(extract-binding/single
'n
(request-bindings
(send/suspend (get-num-core prompt))))))
(define (start initial-request)
(page "The sum is: "
(+ (get-num "First number: ")
(get-num "Second number: "))))