File: add-compat0.rkt

package info (click to toggle)
racket 5.2.1%2Bg6~92c8784%2Bdfsg2-2%2Bdeb7u1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 88,676 kB
  • sloc: ansic: 229,942; sh: 31,883; lisp: 11,486; asm: 9,970; cpp: 2,310; makefile: 2,084; pascal: 2,075; exp: 416; xml: 62; perl: 10; python: 8
file content (29 lines) | stat: -rw-r--r-- 1,205 bytes parent folder | download | duplicates (12)
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
#lang racket/base
(require web-server/servlet
         web-server/compat/0/coerce)
(provide (all-defined-out))
(define interface-version 'v1)
(define timeout +inf.0)

; request-number : str -> num
(define (request-number which-number)
  (send/suspend/dispatch
   (lambda (embed/url)
     `(html (head (title "Enter a Number to Add"))
            (body ([bgcolor "white"])
                  (form ([action ,(embed/url
                                   (lambda (request)
                                     (string->number
                                      (extract-binding/single
                                       'number
                                       (request-bindings request)))))]
                         [method "post"])
                        "Enter the " ,which-number " number to add: "
                        (input ([type "text"] [name "number"] [value ""]))
                        (input ([type "submit"] [name "enter"] [value "Enter"]))))))))

(define (start initial-request)
  `(html (head (title "Sum"))
         (body ([bgcolor "white"])
               (p "The answer is "
                  ,(number->string (+ (request-number "first") (request-number "second")))))))