diff options
Diffstat (limited to 'h28n.hs')
-rw-r--r-- | h28n.hs | 14 |
1 files changed, 0 insertions, 14 deletions
diff --git a/h28n.hs b/h28n.hs deleted file mode 100644 index bf584c7..0000000 --- a/h28n.hs +++ /dev/null @@ -1,14 +0,0 @@ -import Control.Arrow ((>>>), (&&&), second) -import GHC.Exts (sortWith) - -lfsort :: [[a]] -> [[a]] -lfsort = zip [1..] >>> map (second (length &&& id)) >>> sortWith (snd>>>fst) - >>> cntDupLength undefined [] >>> sortWith (snd>>>fst) - >>> sortWith fst >>> map (\(_,(_,(_,a))) -> a) - where - cntDupLength :: Int -> [(Int,(Int,a))] -> [(Int,(Int,a))] -> [(Int,(Int,(Int,a)))] - cntDupLength _ lls [] = map ((,) (length lls)) $ reverse lls - cntDupLength _ [] (x@(_,(l,_)):xs) = cntDupLength l [x] xs - cntDupLength l lls ys@(x@(_,(l1,_)):xs) - | l == l1 = cntDupLength l (x:lls) xs - | otherwise = (map ((,) (length lls)) $ reverse lls) ++ cntDupLength undefined [] ys |