From 59d801c0dfda9a7ddf27261d8a6f7906b049de0a Mon Sep 17 00:00:00 2001 From: DR6 Date: Sat, 29 Jun 2013 23:10:47 +0100 Subject: [PATCH] Added IO to haskell's tutorial --- haskell.html.markdown | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) 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`.