packages feed

alms-0.6.0: examples/futures1.alms

(* An example with futures *)

#load "libthread"

let prompt () = Future.new getLine

let rec printDots count delay =
  if count <= 0
    then ()
    else
      putStr ".";
      flush ();
      AThread.delay (1000 * delay);
      printDots (count - 1) delay

let main message =
  putStrLn message;
  let future = prompt () in
    printDots 80 20;
    putStrLn "";
    putStrLn (Future.sync future)

in main "whadday say? "