on master help sign in
Adds docstrings
commit5ded2c1ae00ed60289652a7887a4eb0e780d1c79 authorKester Tong <kestert@google.com> dateSat 26 Apr 2014, 01:00 (13 years ago) parentce9afae
1 file changed+5
libs/effects/Effect/Random.idr+5
libs/effects/Effect/Random.idr+5
@@ -16,10 +16,14 @@ using (m : Type -> Type)
1616RND : EFFECT
1717RND = MkEff Integer Random
1818
19+||| Generates a random Integer in a given range
1920rndInt : Integer -> Integer -> { [RND] } Eff m Integer
2021rndInt lower upper = do v <- getRandom
2122 return (v `prim__sremBigInt` (upper - lower) + lower)
2223
24+||| Generate a random number in Fin (S `k`)
25+|||
26+||| Note that rndFin k takes values 0, 1, ..., k.
2327rndFin : (k : Nat) -> { [RND] } Eff m (Fin (S k))
2428rndFin k = do let v = !getRandom `prim__sremBigInt` (cast (S k))
2529 return (toFin v)
@@ -28,6 +32,7 @@ rndFin k = do let v = !getRandom `prim__sremBigInt` (cast (S k))
2832 Just v => v
2933 Nothing => toFin (assert_smaller x (x - cast (S k)))
3034
35+||| Sets the random seed
3136srand : Integer -> { [RND] } Eff m ()
3237srand n = setSeed n
3338