Combinations with repetitions: Difference between revisions
m
→Dynamic Programming: Tidied manual recursion version
m (→{{header|AppleScript}}: Tidied) |
m (→Dynamic Programming: Tidied manual recursion version) |
||
Line 1,536:
and another approach, using manual recursion:
<lang haskell>--------------- COMBINATIONS WITH REPETITION -------------
:: (Eq a)▼
combinationsWithRepetition ::
Int ->
[a] ->
[[a]]
combinationsWithRepetition k xs = cmb k []
where
where
nextLayer
nextLayer ys@(h : _) =
(: ys) <$> dropWhile (/= h) xs
-------------------------- TESTS -------------------------
main :: IO ()
main = do
print $
print $ combsWithRep 2 ["iced", "jam", "plain"]▼
combinationsWithRepetition
print $ length $ combsWithRep 3 [0 .. 9]</lang>▼
2
{{Out}}
<pre>[["iced","iced"],["jam","iced"],["plain","iced"],["jam","jam"],["plain","jam"],["plain","plain"]]
|