I have never been a fan of this. I prefer to just use my editor and write programs. Also there are a number of differences between how Haskell acts via ghci and what you can write in a Haskell program.
As one example, you can type "let a=10" in ghci any time you like. Try using let in a regular Haskell program and you will get strange errors about indentation unless you use it in specific places. One of those places is in "do" blocks -- and there is a mystical connection between ghci and do notation.
As of the current version (9.6.6) ghci no longer prints "Prelude>" as the prompt, but rather "ghci>". This seems like a good change and fine to me, but you will encounter dozens of tutorials that show ghci giving the "Prelude>" prompt, so don't be alarmed.
Ghci has a host of "helper" commands that are triggered by a leading colon ":" such as ":t" (which shows the type of the argument). I won't duplicate other resources by trying to enumerate them all here.
Ghci introduces a variable "it" that gets set to the value of the most recent expression that has been typed. This can be a lazy shorthand for subsequent statements, sort of like a "recall" button on certain calculators.
ghci> .25 * 25.4Yes, it wants a leading zero on that 0.25. There is also the issue of negative numbers where "-" is a unary negation operator rather than part of a numeric constant. This may require (-3) to avoid certain parse errors.:2:1: error: [GHC-58481] parse error on input ‘.’ ghci> 0.25 * 25.4 6.35
If you are going down this road, you might read the oft quoted 2007 paper (55 page PDF), "A History of Haskell, Being Lazy with Class".
Tom's Computer Info / tom@mmto.org