summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Zhao <ztuowen@gmail.com>2015-01-31 13:36:53 +0800
committerJoe Zhao <ztuowen@gmail.com>2015-01-31 13:36:53 +0800
commitab8fe6397a6cbe1fefe08c21c6d6d7f6eff910bc (patch)
tree256949990452ed2ce077db8c017aaefeadac896e
parent0135b3ac0d41dda2a4c210e7c3989f20b672be5d (diff)
downloadh99-ab8fe6397a6cbe1fefe08c21c6d6d7f6eff910bc.tar.gz
h99-ab8fe6397a6cbe1fefe08c21c6d6d7f6eff910bc.tar.bz2
h99-ab8fe6397a6cbe1fefe08c21c6d6d7f6eff910bc.zip
p3p4p5
-rw-r--r--p3.hs7
-rw-r--r--p4.hs3
-rw-r--r--p5.hs3
3 files changed, 13 insertions, 0 deletions
diff --git a/p3.hs b/p3.hs
new file mode 100644
index 0000000..7c8604d
--- /dev/null
+++ b/p3.hs
@@ -0,0 +1,7 @@
+elementAt :: [a] -> Integer -> Maybe a
+
+elementAt [] _ = Nothing
+elementAt (x:xs) 1 = Just x
+elementAt (x:xs) n
+ | n>1 = elementAt xs (n-1)
+ | otherwise = Nothing
diff --git a/p4.hs b/p4.hs
new file mode 100644
index 0000000..1aea629
--- /dev/null
+++ b/p4.hs
@@ -0,0 +1,3 @@
+myLength :: [a] -> Integer
+
+myLength = foldl (\x _ -> x+1) 0
diff --git a/p5.hs b/p5.hs
new file mode 100644
index 0000000..720eb9f
--- /dev/null
+++ b/p5.hs
@@ -0,0 +1,3 @@
+myReverse :: [a] -> [a]
+
+myReverse = foldl (flip $ (:)) []