Abbreviations, automatic: Difference between revisions

m
Line 2,841:
<lang haskell>import Data.List (inits, intercalate, nub, transpose)
 
-- ABBREVIATIONS --------------------- ABBREVIATIONS ---------------------
 
abbrevns :: [String] -> [String]
abbrevns xs
| null xs = []
| otherwise =
lethead n = length xs$
in head $ dropWhile ((< n) . length) $ nub <$> transpose (inits <$> xs)
nub
<$> transpose (inits <$> xs)
where
n = length xs
 
 
-- TEST -------------------------- TEST -------------------------
main :: IO ()
main = do
Line 2,855 ⟶ 2,861:
mapM_ putStrLn $
take 10 $
intercalate "\t"
(\xs ->
intercalate. "\t" $(<*>)
[ show . length . head . abbrevns . words, id] <*> [xs]) <$>
lines s</lang> id
]
. return
<$> lines s</lang>
{{Out}}
<pre>2 Sunday Monday Tuesday Wednesday Thursday Friday Saturday
9,655

edits