File: div.ur

package info (click to toggle)
urweb 20170105%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 8,640 kB
  • ctags: 9,972
  • sloc: ansic: 6,402; lisp: 1,198; makefile: 173; sh: 44; sql: 1
file content (43 lines) | stat: -rw-r--r-- 1,417 bytes parent folder | download
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
42
43
functor Make(M : sig
                 type t
                 val read_t : read t
                 val show_t : show t
                 val num_t : num t
             end) = struct
    fun calculate (n1, n2) = return <xml><body>
      {[readError n1 / readError n2 : M.t]}<br/>
      {[readError n1 % readError n2 : M.t]}<br/>
    </body></xml>

    fun main () =
        s1 <- source "";
        s2 <- source "";
        s3 <- source "";
        s4 <- source "";
        return <xml><body>
          <h1>Client-side</h1>

          <ctextbox source={s1}/> / <ctextbox source={s2}/>
          <button value="=" onclick={n1 <- get s1;
                                     n2 <- get s2;
                                     set s3 (show (readError n1 / readError n2 : M.t));
                                     set s4 (show (readError n1 % readError n2 : M.t))}/>
          <dyn signal={n <- signal s3; return (txt n)}/>,
          <dyn signal={n <- signal s4; return (txt n)}/>

          <h1>Server-side</h1>

          <form>
            <textbox{#1}/> / <textbox{#2}/>
            <submit value="=" action={calculate}/>
          </form>
        </body></xml>
end

structure Int = Make(struct type t = int end)
structure Float = Make(struct type t = float end)

fun main () : transaction page = return <xml><body>
  <li><a link={Int.main ()}>Int</a></li>
  <li><a link={Float.main ()}>Float</a></li>
</body></xml>