RosettaCodeData/Task/Find-common-directory-path/Haskell/find-common-directory-path-2.hs

22 lines
454 B
Haskell
Raw Permalink Normal View History

2019-09-12 10:33:56 -07:00
import Data.List (transpose, intercalate)
import Data.List.Split (splitOn)
2020-02-17 23:21:07 -08:00
import Data.Bool (bool)
2019-09-12 10:33:56 -07:00
cdp :: [String] -> String
2020-02-17 23:21:07 -08:00
cdp =
flip
(bool .
intercalate "/" .
fmap head .
takeWhile ((all . (==) . head) <*> tail) . transpose . fmap (splitOn "/"))
([]) <*>
null
2019-09-12 10:33:56 -07:00
main :: IO ()
main =
(putStrLn . cdp)
[ "/home/user1/tmp/coverage/test"
, "/home/user1/tmp/covert/operator"
, "/home/user1/tmp/coven/members"
]