summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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 $ (:)) []