36 lines
1.0 KiB
Scheme
36 lines
1.0 KiB
Scheme
(module counter mzscheme
|
|
(require (lib "servlet.ss" "web-server"))
|
|
(provide (all-defined))
|
|
|
|
(define interface-version 'v1)
|
|
(define timeout 60)
|
|
(define (start _)
|
|
(main-page))
|
|
|
|
(define the-counter (make-parameter 0))
|
|
|
|
(define (counter)
|
|
(send/suspend/dispatch
|
|
(lambda (embed/url)
|
|
`(html (h2 ,(number->string (the-counter)))
|
|
(a ([href ,(embed/url
|
|
(lambda _
|
|
(parameterize ([the-counter (add1 (the-counter))])
|
|
(counter))))])
|
|
"Increment")
|
|
(br)
|
|
(a ([href ,(embed/url
|
|
(lambda _
|
|
'exit))])
|
|
"Exit")))))
|
|
|
|
(define (main-page)
|
|
(send/suspend/dispatch
|
|
(lambda (embed/url)
|
|
`(html (h2 "Main page")
|
|
(a ([href ,(embed/url
|
|
(lambda _
|
|
(counter)
|
|
(main-page)))])
|
|
"View Counter"))))))
|