Safe Haskell | None |
---|---|
Language | Haskell98 |
List permutation functions.
- permutations :: [a] -> [[a]]
- multiset_permutations :: Ord a => [a] -> [[a]]
- factorial :: (Enum a, Num a) => a -> a
- multiset_permutations_n :: Ord a => [a] -> Int
Documentation
permutations :: [a] -> [[a]] Source #
Generate all permutations.
permutations [0,3] == [[0,3],[3,0]] length (permutations [1..5]) == P.n_permutations 5
multiset_permutations :: Ord a => [a] -> [[a]] Source #
Generate all distinct permutations of a multi-set.
multiset_permutations [0,1,1] == [[0,1,1],[1,1,0],[1,0,1]]
multiset_permutations_n :: Ord a => [a] -> Int Source #
Calculate number of permutations of a multiset.
let r = factorial 11 `div` product (map factorial [1,4,4,2]) in multiset_permutations_n "MISSISSIPPI" == r
multiset_permutations_n "MISSISSIPPI" == 34650 length (multiset_permutations "MISSISSIPPI") == 34650