September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -1,14 +1,15 @@
|
|||
s_permutations :: [a] -> [([a], Int)]
|
||||
s_permutations = flip zip (cycle [1, -1]) . (foldl aux [[]])
|
||||
where aux items x = do
|
||||
(f,item) <- zip (cycle [reverse,id]) items
|
||||
f (insertEv x item)
|
||||
insertEv x [] = [[x]]
|
||||
insertEv x l@(y:ys) = (x:l) : map (y:) (insertEv x ys)
|
||||
sPermutations :: [a] -> [([a], Int)]
|
||||
sPermutations = flip zip (cycle [-1, 1]) . foldr aux [[]]
|
||||
where
|
||||
aux x items = do
|
||||
(f, item) <- zip (repeat id) items
|
||||
f (insertEv x item)
|
||||
insertEv x [] = [[x]]
|
||||
insertEv x l@(y:ys) = (x : l) : ((y :) <$> insertEv x ys)
|
||||
|
||||
main :: IO ()
|
||||
main = do
|
||||
putStrLn "3 items:"
|
||||
mapM_ print $ s_permutations [0..2]
|
||||
putStrLn "4 items:"
|
||||
mapM_ print $ s_permutations [0..3]
|
||||
mapM_ print $ sPermutations [1 .. 3]
|
||||
putStrLn "\n4 items:"
|
||||
mapM_ print $ sPermutations [1 .. 4]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue