view demo/listEdit.ur @ 1892:907a82a44f01

Add missing inter-library dependencies This is needed, at least on recent Ubuntu, to fix these linker errors when compiling any Ur/Web application: liburweb.so: undefined reference to `lround' liburweb.so: undefined reference to `ceil' liburweb.so: undefined reference to `RAND_bytes' liburweb.so: undefined reference to `DES_fcrypt' liburweb.so: undefined reference to `SHA256_Init' liburweb.so: undefined reference to `SHA256_Final' liburweb.so: undefined reference to `SHA256_Update' Signed-off-by: Anders Kaseorg <andersk@mit.edu> --- src/c/Makefile.am | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-)
author Anders Kaseorg <andersk@mit.edu>
date Thu, 21 Nov 2013 14:32:11 -0500
parents e6bc6bbd7a32
children
line wrap: on
line source
datatype rlist = Nil | Cons of {Data : source string,
                                NewData : source string,
                                Tail : source rlist}

fun showString ss =
    s <- signal ss;
    return <xml>{[s]}</xml>

fun show rls =
    v <- signal rls;
    show' v

and show' rl =
    case rl of
        Nil => return <xml/>
      | Cons {Data = ss, NewData = ss', Tail = rls} => return <xml>
        <dyn signal={showString ss}/>
        <button value="Change to:" onclick={fn _ => s <- get ss'; set ss s}/>
        <ctextbox source={ss'}/><br/>
        <dyn signal={show rls}/>
      </xml>

fun main () =
    head <- source Nil;
    tailP <- source head;
    data <- source "";

    let
        fun add () =
            data <- get data;
            data <- source data;
            ndata <- source "";
            tail <- get tailP;
            tail' <- source Nil;

            let
                val cons = Cons {Data = data, NewData = ndata, Tail = tail'}
            in
                set tail cons;
                set tailP tail';

                head' <- get head;
                case head' of
                    Nil => set head cons
                  | _ => return ()
            end
    in
        return <xml><body>
          <ctextbox source={data}/> <button value="Add" onclick={fn _ => add ()}/><br/>
          <br/>

          <dyn signal={show head}/>
        </body></xml>
    end