summaryrefslogtreecommitdiff
path: root/System/Random/Shuffle.hs
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2020-12-24 14:24:16 -0500
committerBen Sima <ben@bsima.me>2020-12-24 14:24:16 -0500
commit6eaaf3d8ce6025932990de6fa697d14c9651be76 (patch)
tree65ca4a0dd0393db98d9a6067bbbef789469e8122 /System/Random/Shuffle.hs
parent6a4a8aa37044d578c95dea145b9605908b8dc28d (diff)
linting fixes and cleanup
Diffstat (limited to 'System/Random/Shuffle.hs')
-rw-r--r--System/Random/Shuffle.hs10
1 files changed, 5 insertions, 5 deletions
diff --git a/System/Random/Shuffle.hs b/System/Random/Shuffle.hs
index d3cd387..d26361f 100644
--- a/System/Random/Shuffle.hs
+++ b/System/Random/Shuffle.hs
@@ -16,7 +16,7 @@
-- main = do
-- rng <- newStdGen
-- let xs = [1,2,3,4,5]
--- print $ shuffle' xs (length xs) rng
+-- print <| shuffle' xs (length xs) rng
module System.Random.Shuffle
( shuffle,
shuffle',
@@ -48,10 +48,10 @@ data Tree a
-- | Convert a sequence (e1...en) to a complete binary tree
buildTree :: [a] -> Tree a
-buildTree = fix growLevel . map Leaf
+buildTree = fix growLevel <. map Leaf
where
growLevel _ [node] = node
- growLevel self l = self $ inner l
+ growLevel self l = self <| inner l
inner [] = []
inner [e] = [e]
inner (e1 : e2 : es) = e1 `seq` e2 `seq` join e1 e2 : inner es
@@ -92,13 +92,13 @@ shuffle elements = shuffleTree (buildTree elements)
-- generator, compute the corresponding permutation of the input
-- sequence.
shuffle' :: RandomGen gen => [a] -> Int -> gen -> [a]
-shuffle' elements len = shuffle elements . rseq len
+shuffle' elements len = shuffle elements <. rseq len
where
-- The sequence (r1,...r[n-1]) of numbers such that r[i] is an
-- independent sample from a uniform random distribution
-- [0..n-i]
rseq :: RandomGen gen => Int -> gen -> [Int]
- rseq n = map fst . rseq' (n - 1)
+ rseq n = map fst <. rseq' (n - 1)
where
rseq' :: RandomGen gen => Int -> gen -> [(Int, gen)]
rseq' 0 _ = []