Is there a library routine for random permutations?

I didn't find any and did a quick hack, which works fine for my
application (length of list < 100), but what would be a more
elegant way?

Well, sorting is a special case of permuting, so my idea was to use the library routine


List.sortBy :: (a -> a -> Ordering) -> [a] -> [a]

passing it a comparison function which ignores its arguments and simply returns a random bit when invoked, e.g.

permute = sortBy $ \_ _ -> if random() then GT else LT

Unfortunately, this one-line hack is impossible since random numbers rely on state and sortBy is not prepared for use with a monad.

Back in the old days when we had assignments...

--Andreas

--
Andreas Abel     --<>--    What if Jesus is right?

Theoretical Computer Science, University of Munich
http://www.tcs.informatik.uni-muenchen.de/~abel/

_______________________________________________
Haskell mailing list
[EMAIL PROTECTED]
http://www.haskell.org/mailman/listinfo/haskell

Reply via email to