1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
|
#lang web-server
(define interface-version 'stateless)
(provide start interface-version)
(define (start initial-request)
(define counter1 0)
(define counter2 0)
(send/suspend/url/dispatch
(lambda (embed/url)
(let*-values ([(inc1 next-counter1 next-counter2) (include-counter counter1 counter2 embed/url)]
[(inc2 next-counter2 next-counter1) (include-counter next-counter2 next-counter1 embed/url)])
(response/xexpr
`(html
(body (h2 "Web Cell Test")
(div (h3 "First") ,(inc1 next-counter1 next-counter2))
(div (h3 "Second") ,(inc2 next-counter2 next-counter1)))))))))
(define (include-counter my-counter other-counter embed/url)
(let/cc k
(letrec ([include
(lambda (next-my-counter next-other-counter)
`(div (h3 ,(number->string next-my-counter))
(a ([href
,(url->string
(embed/url
(lambda _
(k include
(add1 next-my-counter)
next-other-counter))))])
"Increment")))])
(values include
my-counter
other-counter))))
|