From a9ee47b61558efe09aee23f5671aabd0c3747e8a Mon Sep 17 00:00:00 2001 From: Joe Zhao <ztuowen@gmail.com> Date: Tue, 17 Mar 2015 11:05:29 +0800 Subject: p -> h --- h9.hs | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 h9.hs (limited to 'h9.hs') diff --git a/h9.hs b/h9.hs new file mode 100644 index 0000000..b190491 --- /dev/null +++ b/h9.hs @@ -0,0 +1,13 @@ +pack :: (Eq a) => [a] -> [[a]] +pack = foldr elim [] + where elim e [] = [[e]] + elim e p@(n:ns) + | e == head n = (e:n):ns + | otherwise = [e]:p + +pack' (x:xs) = let (first,rest) = span (==x) xs + in (x:first) : pack' rest +pack' [] = [] + +pack'' (x:xs) = (x:takeWhile (==x) xs):(pack'' $ dropWhile (==x) xs) +pack'' [] = [] -- cgit v1.2.3-70-g09d2