25 lines
933 B
Scheme
25 lines
933 B
Scheme
(require (lib "xml.ss" "xml")
|
|
(lib "unitsig.ss")
|
|
(lib "servlet-sig.ss" "web-server")
|
|
"helper-sig.ss")
|
|
|
|
(unit/sig my-servlet-helpers^
|
|
(import servlet^)
|
|
|
|
; 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
|
|
(let ([prompt (string-append "Enter " which-number ": ")])
|
|
(build-suspender
|
|
(list prompt)
|
|
`(,@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.")))))))) |