Haskell in 5 steps
From HaskellWiki
(→Where to go from here) |
m (added link to turkish translation) |
||
| Line 160: | Line 160: | ||
[[Category:Tutorials]] | [[Category:Tutorials]] | ||
| + | Languages: [[5 adımda Haskell|tur]] | ||
Revision as of 20:13, 2 December 2007
Haskell is a general purpose, purely functional programming language. This page will help you get started as quickly as possible.
Contents |
1 Install Haskell
Haskell, like most other languages, comes in two flavors: batch oriented (compiler) and interactive (interpreter). An interactive system gives you a command line where you can experiment and evaluate expressions directly, and is probably a good choice to start with.
| GHC | Compiler and interpreter (GHCi) | Probably the most feature-complete system |
| Hugs | Interpreter only | Very portable, and more lightweight than GHC. |
While both GHC and Hugs work on Windows, Hugs has perhaps the best integration on that platform. There is also information available on installing Haskell software on Mac OS X.
2 Start Haskell
Open a terminal. If you installed GHC, type ghci (the name of the executable of the GHC interpreter) at the command prompt. If you installed Hugs, type hugs.
$ ghci
___ ___ _
/ _ \ /\ /\/ __(_)
/ /_\// /_/ / / | | GHC Interactive, version 6.4, for Haskell 98.
/ /_\\/ __ / /___| | http://www.haskell.org/ghc/
\____/\/ /_/\____/|_| Type :? for help.
Loading package base-1.0 ... linking ... done.
Prelude>
And you are presented with a prompt. The Haskell system now attentively awaits your input.
3 Write your first Haskell program
If you've learned to program another language, your first program probably was "Hello, world!", so let's do that:
Prelude> "Hello, World!" "Hello, World!"
The Haskell system evaluated the string, and printed the result. Or we can try a variation to print directly to standard output:
Prelude> putStrLn "Hello World" Hello World
Using a Haskell compiler, such as GHC, you can compile the code to a standalone executable. Create a source file hello.hs containing:
main = putStrLn "Hello, World!"
And compile it with:
$ ghc -o hello hello.hs
You can then run the executable (./hello on Unix systems, hello.exe on Windows):
$ ./hello
Hello, World!
4 Haskell the calculator
Let's do something fun. In Haskell, your first true program is the factorial function. So back to the interpreter now and let's define it:
Prelude> let fac n = if n == 0 then 1 else n * fac (n-1)
This defines a new function called fac which computes the factorial of an integer.
We can now run fac on some argument:
Prelude> fac 42 1405006117752879898543142606244511569936384000000000
Congratulations! Programming made easy. Note that if you're using Hugs, you'll need to load the definition of fac from a file, fac.hs, containing:
fac n = if n == 0 then 1 else n * fac (n-1)
And run it with Hugs as follows (this also works in GHCi):
Hugs.Base> :load fac.hs Main> fac 42 1405006117752879898543142606244511569936384000000000
We can of course compile this program, to produce a standalone executable. In the file fac.hs we can write (and let's use elegant pattern matching syntax just for fun):
fac 0 = 1 fac n = n * fac (n-1) main = print (fac 42)
which can then be compiled and run:
$ ghc -o fac fac.hs
$ ./fac
1405006117752879898543142606244511569936384000000000
Great!
5 Where to go from here
There are many good Haskell tutorials and books. Here are some we recommend:
Tutorials
- Haskell in 10 minutes
- Yet Another Haskell Tutorial (English)
- A Gentle Introduction to Haskell (English, Image:GentleFR.pdf)
For a complete list of textbooks, references and tutorials:
Join the community!
Talk to others in the Haskell community:
Languages: tur
