summaryrefslogtreecommitdiff
path: root/Haskell-book/04/src
diff options
context:
space:
mode:
Diffstat (limited to 'Haskell-book/04/src')
-rw-r--r--Haskell-book/04/src/Ex.purs33
-rw-r--r--Haskell-book/04/src/Main.purs9
2 files changed, 42 insertions, 0 deletions
diff --git a/Haskell-book/04/src/Ex.purs b/Haskell-book/04/src/Ex.purs
new file mode 100644
index 0000000..38da5c4
--- /dev/null
+++ b/Haskell-book/04/src/Ex.purs
@@ -0,0 +1,33 @@
+module Ex where
+
+import Prelude
+import Data.Array (tail, reverse)
+import Data.Maybe (Maybe(..))
+import Data.String (toCharArray)
+import Data.Tuple (fst, snd, Tuple(..))
+
+awesome :: Array String
+awesome = ["Papuchon", "curry", ":)"]
+
+alsoAwesome :: Array String
+alsoAwesome = ["Quake", "The Simons"]
+
+allAwesome :: Array (Array String)
+allAwesome = [awesome, alsoAwesome]
+
+length :: forall a. Array a -> Int
+length n = length' 0 (tail n)
+ where length' i Nothing = i
+ length' i (Just k) = length' (i + 1) (tail k)
+
+isPalindrome :: String -> Boolean
+isPalindrome x = toCharArray x == reverse (toCharArray x)
+
+myAbs :: Int -> Int
+myAbs a = if a > 0 then a else -a
+
+f :: forall a b c d. Tuple a b -> Tuple c d -> Tuple (Tuple b d) (Tuple a c)
+f x y = Tuple (Tuple (snd x) (snd y)) (Tuple (fst x) (fst y))
+
+f' :: forall a b. (Tuple a b) -> a
+f' (Tuple a b) = a
diff --git a/Haskell-book/04/src/Main.purs b/Haskell-book/04/src/Main.purs
new file mode 100644
index 0000000..abe68ec
--- /dev/null
+++ b/Haskell-book/04/src/Main.purs
@@ -0,0 +1,9 @@
+module Main where
+
+import Prelude
+import Control.Monad.Eff (Eff)
+import Control.Monad.Eff.Console (CONSOLE, log)
+
+main :: forall e. Eff (console :: CONSOLE | e) Unit
+main = do
+ log "Hello sailor!"