diff options
author | DR6 <darkairblast@gmail.com> | 2013-06-29 23:10:47 +0100 |
---|---|---|
committer | DR6 <darkairblast@gmail.com> | 2013-06-29 23:10:47 +0100 |
commit | 59d801c0dfda9a7ddf27261d8a6f7906b049de0a (patch) | |
tree | 1040a46fa3a477506bed2c30ad39647732377ec4 | |
parent | 2838738a58b7f6f523e456937b90b60ba2f15c0c (diff) |
Added IO to haskell's tutorial
-rw-r--r-- | haskell.html.markdown | 27 |
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`. |