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