File: add01.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 (41 lines) | stat: -rw-r--r-- 1,774 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
30
31
32
33
34
35
36
37
38
39
40
41
#lang racket/base
(require web-server/http
         net/url)
(define interface-version 'stateless)
(provide start interface-version)

(define (start req)
  (let* ([uri (request-uri req)]
         [qry (url-query uri)])
    (cond
      [(assoc 'second qry)
       => (lambda (a-pair)
            (response/xexpr
             `(html (head (title "Answer Page"))
                    (body
                     (h1 "Answer Page")
                     (p ,(format "The answer is: ~a"
                                 (+ (string->number (cdr a-pair))
                                    (string->number (cdr (assoc 'first qry))))))))))]
      [(assoc 'first qry)
       => (lambda (a-pair)
            (response/xexpr
             `(html (head (title "Second Page"))
                    (body
                     (h1 "Second Page")
                     (form ([action ,(url->string uri)]
                            [method "get"] [enctype "application/x-www-form-urlencoded"])
                           "Enter the second number to add: "
                           (input ([type "hidden"] [name "first"] [value ,(cdr a-pair)]))
                           (input ([type "text"] [name "second"] [value ""]))
                           (input ([type "submit"] [name "enter"] [value "Enter"])))))))]
      [else
       (response/xexpr
        `(html (head (title "Hello"))
               (body
                (h1 "Hello World!")
                (form ([action ,(url->string uri)]
                       [method "get"] [enctype "application/x-www-form-urlencoded"])
                      "Enter the first number to add: "
                      (input ([type "text"] [name "first"] [value ""]))
                      (input ([type "submit"] [name "enter"] [value "Enter"]))))))])))