\insert 'MakeStreamObject.oz' fun {RandomStream Seed} SO = {MakeStreamObject proc {$ _ CurrSeed ?Out ?NewSeed} M = {Pow 2 32} A = 1664525 % should be such that A-1 is divisible by 4 C = 1013904223 % should be relatively prime to M in Out = (A*CurrSeed + C) mod M NewSeed = Out end } fun lazy {Ones} 1|{Ones} end in {SO {Ones} Seed} end {Browse {List.take {RandomStream 11} 15}} {Browse {List.take {RandomStream 11} 15}}