37 lines
1.1 KiB
Scheme
37 lines
1.1 KiB
Scheme
(module counter-cps 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 k)
|
|
(send/suspend/dispatch
|
|
(lambda (embed/url)
|
|
`(html (h2 ,(number->string (the-counter)))
|
|
(a ([href ,(embed/url
|
|
(lambda _
|
|
(parameterize ([the-counter (add1 (the-counter))])
|
|
(counter k))))])
|
|
"Increment")
|
|
(br)
|
|
(a ([href ,(embed/url
|
|
(lambda _
|
|
(k 'exit)))])
|
|
"Exit")))))
|
|
|
|
(define (main-page)
|
|
(send/suspend/dispatch
|
|
(lambda (embed/url)
|
|
`(html (h2 "Main page")
|
|
(a ([href ,(embed/url
|
|
(lambda _
|
|
(counter
|
|
(lambda (v)
|
|
(main-page)))))])
|
|
"View Counter"))))))
|