summaryrefslogtreecommitdiff
path: root/h27.hs
blob: 68efa737b1bc0e3eaabc68a8e6895860c243f73d (plain)
1
2
3
4
5
6
7
8
combination :: Int -> [a] -> [[a]]                                                                                                  
combination 0 _ = [[]]                                                                                                              
combination _ [] = []                                                                                                               
combination c (x:xs) = (map (x:) (combination (c-1) xs)) ++ (combination c xs)

group :: [Int] -> [a] -> [a]
group [] xs = [[xs]]
group (n:ns) xs = map ((combination n) . head) group (n:ns) xs