23 lines
1.0 KiB
Scheme
23 lines
1.0 KiB
Scheme
(module helper mzscheme
|
|
(require (lib "servlet.ss" "web-server"))
|
|
(provide (all-defined))
|
|
|
|
; get-number : string -> number
|
|
; to prompt the user for a number
|
|
(define (get-number which-number)
|
|
(let ask ([error-message null])
|
|
(let* ([n-str
|
|
(extract-binding/single
|
|
'n
|
|
(request-bindings
|
|
(send/suspend
|
|
(lambda (k-url)
|
|
(let ([prompt (string-append "Enter " which-number ": ")])
|
|
`(html (head (title ,prompt))
|
|
(body (form ([action ,k-url]
|
|
[method "post"])
|
|
,@error-message
|
|
(p ,prompt (input ([type "text"] [name "n"])))
|
|
(input ([type "submit"] [value "Okay"]))))))))))]
|
|
[n (string->number n-str)])
|
|
(or n (ask `((p (font ([color "red"]) ,n-str) " is not a number. Please enter a number.")))))))) |