Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,3 @@
import Data.List (permutations)
main = mapM_ print (permutations [1,2,3])

View file

@ -0,0 +1,5 @@
import Data.List (delete)
permutations :: Eq a => [a] -> [[a]]
permutations [] = [[]]
permutations xs = [ x:ys | x <- xs, ys <- permutations (delete x xs)]

View file

@ -0,0 +1,5 @@
permutations :: [a] -> [[a]]
permutations [] = [[]]
permutations xs = [ y:zs | (y,ys) <- select xs, zs <- permutations ys]
where select [] = []
select (x:xs) = (x,xs) : [ (y,x:ys) | (y,ys) <- select xs ]

View file

@ -0,0 +1,5 @@
permutations :: [a] -> [[a]]
permutations = foldr (concatMap . insertEverywhere) [[]]
where insertEverywhere :: a -> [a] -> [[a]]
insertEverywhere x [] = [[x]]
insertEverywhere x l@(y:ys) = (x:l) : map (y:) (insertEverywhere x ys)

View file

@ -0,0 +1,14 @@
import Data.Bifunctor (second)
permutations :: [a] -> [[a]]
permutations =
let ins x xs n = uncurry (<>) $ second (x :) (splitAt n xs)
in foldr
( \x a ->
a >>= (fmap . ins x)
<*> (enumFromTo 0 . length)
)
[[]]
main :: IO ()
main = print $ permutations [1, 2, 3]