X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=docs%2Fusers_guide%2Fghci.xml;h=7c3fed2e8b5b0902db94349d6141dd5d7340e7ca;hb=3bb700d515de2405fa5db3326482e529f332d508;hp=80205954e5ecf0b2e9ee299eda9fa679478073e8;hpb=0729e745e2f13888f9ccc76c10546a52e953fa6f;p=ghc-hetmet.git
diff --git a/docs/users_guide/ghci.xml b/docs/users_guide/ghci.xml
index 8020595..7c3fed2 100644
--- a/docs/users_guide/ghci.xml
+++ b/docs/users_guide/ghci.xml
@@ -58,8 +58,52 @@ Prelude>
GHCi interprets the whole line as an expression to evaluate.
- The expression may not span several lines - as soon as you press
- enter, GHCi will attempt to evaluate it.
+ The expression may not span several lines - as soon as you press enter,
+ GHCi will attempt to evaluate it.
+
+ GHCi also has a multiline mode,
+ :set +m,
+ which is terminated by an empty line:
+
+
+Prelude> :set +m
+Prelude> let x = 42 in x / 9
+Prelude|
+4.666666666666667
+Prelude>
+
+
+ In Haskell, a let expression is followed
+ by in. However, in GHCi, since the expression
+ can also be interpreted in the IO monad,
+ a let binding with no accompanying
+ in statement can be signalled by an empty line,
+ as in the above example.
+
+ Multiline mode is useful when entering monadic
+ do statements:
+
+
+Control.Monad.State> flip evalStateT 0 $ do
+Control.Monad.State| i <- get
+Control.Monad.State| lift $ do
+Control.Monad.State| putStrLn "Hello World!"
+Control.Monad.State| print i
+Control.Monad.State|
+"Hello World!"
+0
+Control.Monad.State>
+
+
+ During a multiline interaction, the user can interrupt and
+ return to the top-level prompt.
+
+
+Prelude> do
+Prelude| putStrLn "Hello, World!"
+Prelude| ^C
+Prelude>
+
@@ -2345,6 +2389,19 @@ bar
+ :script n
+ filename
+ :script
+
+
+ Executes the lines of a file as a series of GHCi commands. This command
+ is compatible with multiline statements as set by :set +m
+
+
+
+
+
+
:set option...
:set
@@ -2627,6 +2684,18 @@ bar
+ +m
+ +m
+
+
+ Enable parsing of multiline commands. A multiline command
+ is prompted for when the current input line contains open layout
+ contexts.
+
+
+
+
+
+r
+r
CAFsin GHCi