%%% $Id: random.oz,v 1.0 2002/03/12 10:08:00 dada Exp $
%%% http://dada.perl.it/shootout/
functor
import System Application
define
fun {RandLoop N SEED R MAX}
case N
of 0 then R
else
local IA IC IM NEWSEED NEWRAND in
IM = 139968
IA = 3877
IC = 29573
NEWSEED = (SEED * IA + IC) mod IM
NEWRAND = MAX * {Int.toFloat NEWSEED}/{Int.toFloat IM}
{RandLoop N-1 NEWSEED NEWRAND MAX}
end
end
end
in
local A NUM I in
[A] = {Application.getArgs plain}
NUM = {String.toInt A}
{System.printInfo {RandLoop NUM 42 0 100.0}}
end
{Application.exit 0}
end