summaryrefslogtreecommitdiffhomepage
path: root/haskell.html.markdown
diff options
context:
space:
mode:
authorDR6 <darkairblast@gmail.com>2013-06-29 23:10:47 +0100
committerDR6 <darkairblast@gmail.com>2013-06-29 23:10:47 +0100
commit59d801c0dfda9a7ddf27261d8a6f7906b049de0a (patch)
tree1040a46fa3a477506bed2c30ad39647732377ec4 /haskell.html.markdown
parent2838738a58b7f6f523e456937b90b60ba2f15c0c (diff)
Added IO to haskell's tutorial
Diffstat (limited to 'haskell.html.markdown')
-rw-r--r--haskell.html.markdown27
1 files changed, 26 insertions, 1 deletions
diff --git a/haskell.html.markdown b/haskell.html.markdown
index 563674c9..fbaa93f2 100644
--- a/haskell.html.markdown
+++ b/haskell.html.markdown
@@ -259,7 +259,32 @@ Just "hello"
Just 1
----------------------------------------------------
--- 8. The Haskell REPL
+-- 8. Haskell IO
+----------------------------------------------------
+
+-- While IO can't be explained fully without explaining monads
+-- it is not hard to explain enough to get going
+
+-- An IO a value is an IO action: you can chain them with do blocks
+action = do
+ putStrLn "This is a line. Duh"
+ input <- getLine -- this gets a line and gives it the name "input"
+ input2 <- getLine
+ return (input1++"\n"++input2) -- This is the result of the whole action
+
+-- This didn't actually do anything. When a haskell program is executed
+-- an IO action called "main" is read and interprete
+
+main = do
+ putStrLn "Our first program. How exciting!"
+ result <- action -- our defined action is just like the default ones
+ putStrLn result
+ putStrLn "This was all, folks!"
+
+
+
+----------------------------------------------------
+-- 9. The Haskell REPL
----------------------------------------------------
-- Start the repl by typing `ghci`.