Skip to content

Commit b6e3edc

Browse files
committed
added Random.join, implemented Random.bind via Random.join
1 parent 1498741 commit b6e3edc

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

src/Hedgehog/Random.fs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,14 +41,16 @@ module Random =
4141
|> unsafeRun seed size
4242
|> f)
4343

44-
let bind (f: 'a -> Random<'b>) (r: Random<'a>) : Random<'b> =
44+
let join (r: Random<Random<'a>>) : Random<'a> =
4545
Random (fun seed size ->
4646
let seed1, seed2 = Seed.split seed
4747
r
4848
|> unsafeRun seed1 size
49-
|> f
5049
|> unsafeRun seed2 size)
5150

51+
let bind (f: 'a -> Random<'b>) (r: Random<'a>) : Random<'b> =
52+
r |> map f |> join
53+
5254
let replicate (times: int) (r: Random<'a>) : Random<List<'a>> =
5355
Random (fun seed0 size ->
5456
let rec loop seed k acc =

0 commit comments

Comments
 (0)