view tests/each.ur @ 2142:3288e3c9948b

Fix XML indentation in Emacs mode The return value of MATCH-STRING is a string. At least on Emacs 25, the comparisons between string and character with EQUAL could never succeed, and so the cases for matching braces were never triggered. GET-TEXT-PROPERTY may return a list rather than an atom (for example, on long lines with whitespace-mode turned on), and this broke the heuristic of looking for the tag face in previous text.
author Julian Squires <julian@cipht.net>
date Mon, 04 May 2015 14:35:07 -0400
parents ccf1d445b794
children
line wrap: on
line source
sequence s
table t : { Id : int, S1 : string, S2:string, S3:string, S4:string }

fun each (n : int, (f : unit -> transaction unit)) = if n > 0 then f (); each ((n-1),f) else return ()

fun fill () =
    dml (DELETE FROM t WHERE 1=1);
    each (1,( fn () =>
      (nv <- nextval s;
      (dml (INSERT INTO t (Id, S1, S2, S3, S4) VALUES ({[nv]}, {["S1"]}, {["S2"]}, {["S3"]}, {["S4"]}))))
    ));
    return <xml>done</xml>

fun main () = return <xml><body>
    <form><submit action={fill} value="fill"/></form>
</body></xml>