hmt-0.16: Haskell Music Theory

Safe HaskellNone
LanguageHaskell98

Music.Theory.Permutations.List

Description

List permutation functions.

Synopsis

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]]

factorial :: (Enum a, Num a) => a -> a Source #

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