some refactoring, including exposition
[lambda.git] / learning_haskell.mdwn
1 *   [Try Haskell in your browser](http://tryhaskell.org) (slow, bare-bones) <!-- similar websites listed at https://wiki.haskell.org/Learning_Haskell#Trying_Haskell_online -->
2 *   This site's guide to [[Installing Haskell|/installing#haskell]]
3 *   This site's [[entry-level explanation of the differences between Scheme, OCaml, and Haskell|rosetta1]]
4 *   More detailed comparisons of OCaml and Haskell [[here|/rosetta2]]; and then more details about how to do some OCaml-ish and Haskell-ish things in Scheme, and how to get Scheme-ish continuations in OCaml, [[here|/rosetta3]]
5
6
7 <!-- -->
8 *   **[Learn Haskell in 10 minutes](https://wiki.haskell.org/Learn_Haskell_in_10_minutes)**
9 *   **[A brief introduction to Haskell](https://wiki.haskell.org/A_brief_introduction_to_Haskell)** <!-- sister article to: http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html -->
10 *   [What is Haskell?](https://wiki.haskell.org/Introduction) and
11 [Why Haskell matters](https://wiki.haskell.org/Why_Haskell_matters) <!-- <http://learnyouahaskell.com/introduction#so-whats-haskell> <http://scienceblogs.com/goodmath/2006/11/26/why-haskell/> <http://www.onlamp.com/pub/a/onlamp/2007/05/21/an-introduction-to-haskell---part-1-why-haskell.html> -->
12 *   [Quick Reference](https://wiki.haskell.org/Reference_card) | [Cheat Sheet](http://cheatsheet.codeslower.com/CheatSheet.pdf)
13 *   [Tour of the Haskell Syntax](https://web.archive.org/web/20100529023840/http://cs.anu.edu.au/student/comp1100/haskell/tourofsyntax.html)
14 *   [Walla Walla Overview](http://cs.wallawalla.edu/research/KU/PR/Haskell.html) (18 pp.) <!-- <http://cs.wallawalla.edu/research/KU/PR/Scheme.html> <http://cs.wallawalla.edu/research/KU/PR/SML.html> -->
15 *   Wikipedia on
16 [Haskell](https://en.wikipedia.org/wiki/Haskell_%28programming_language%29) and
17 [GHC](https://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler)
18 <!-- [Haskell Wiki's Getting Started](https://wiki.haskell.org/Haskell_in_5_steps) -->
19
20
21 <!-- -->
22 *   [Haskell Wiki](https://wiki.haskell.org), with a link to download the [Haskell Platform](https://www.haskell.org/platform/contents.html)
23 *   [New Haskell Wiki](https://new-www.haskell.org)
24 *   [Haskell FAQ](https://wiki.haskell.org/FAQ)
25
26
27 ## Tutorials ##
28
29 *   Lecture notes from a good [Intro to Haskell course](http://www.seas.upenn.edu/~cis194/fall14/lectures.html) at Penn
30 *   [The Haskell Wikibook](https://en.wikibooks.org/wiki/Haskell)
31 *   [Learn You a Haskell for Great Good](http://learnyouahaskell.com/chapters) (400 pp. illustrated and highly-praised text from 2011)
32 *   [Yet Another Haskell Tutorial](https://en.wikibooks.org/wiki/Yet_Another_Haskell_Tutorial/Preamble) (YAHT, also as 192 pp. [pdf](http://hal3.name/docs/daume02yaht.pdf)) <!-- also at <https://web.archive.org/web/20060717023859/http://www.isi.edu/~hdaume/htut/tutorial.pdf> -->
33
34
35 ### More tutorials, mostly aimed at existing programmers ###
36
37 *   A Not-So-[Gentle Introduction to Haskell](https://www.haskell.org/tutorial) (64 pp. tutorial from 2000, expects some prior knowledge of functional programming)
38 *   [Haskell Tutorial for C Programmers](https://wiki.haskell.org/Haskell_Tutorial_for_C_Programmers) (45 pp.)
39 *   [How to read Haskell](https://wiki.haskell.org/How_to_read_Haskell)
40 *   [Hitchhiker's guide to Haskell](https://wiki.haskell.org/Hitchhikers_guide_to_Haskell) (33 pp.)
41 *   [Write Yourself a Scheme in 48 Hours](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours)
42 *   Comprehensive List at [Haskell Wiki](https://wiki.haskell.org/Tutorials)
43
44
45 ### Other ###
46 *   [Lambda Lessons](http://stevekrouse.github.io/hs.js), experiment with evaluating `map` and `fold` step-by-step
47 *   [A Tour of the Haskell Prelude](http://www.letu.edu/people/jaytevis/Programming-Languages/Haskell/tourofprelude.html)
48 *   [Haskell for OCaml Programmers](http://science.raphael.poss.name/haskell-for-ocaml-programmers.pdf)
49 *   [ML Dialects and Haskell](http://hyperpolyglot.org/ml)
50 *   [Differences between Haskell and SML?](http://www.quora.com/What-are-the-key-differences-between-Haskell-and-Standard-ML?browse)
51
52
53 ## Advanced Docs, listed here for reference ##
54
55 *   GHC User's Guide from
56 [Haskell Platform](https://www.haskell.org/platform/doc/2014.2.0.0/ghc/users_guide) |
57 [latest](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide), including
58 [Using GHCi](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghci.html) and
59 [Extensions](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide/ghc-language-features.html)
60 *   Libraries from
61 [Haskell Platform](https://www.haskell.org/platform/doc/2014.2.0.0/platform/doc) |
62 [Haskell 2010](https://www.haskell.org/onlinereport/haskell2010/haskellpa2.html)
63 ([Prelude](https://www.haskell.org/onlinereport/haskell2010/haskellch9.html)) <!--
64 [GHC latest bootstrap libraries](https://downloads.haskell.org/~ghc/latest/docs/html/libraries)
65 -->
66 *   GHC [releases](https://www.haskell.org/ghc) and
67 [other docs](https://wiki.haskell.org/GHC), including
68 [GHCi](https://wiki.haskell.org/GHC/GHCi) and
69 [GHC FAQ](https://wiki.haskell.org/GHC/FAQ)
70 *   Formal language specs:
71 [Haskell 98](https://www.haskell.org/onlinereport) |
72 [Haskell 2010](https://www.haskell.org/onlinereport/haskell2010) |
73 [Haskell&prime;](https://ghc.haskell.org/trac/haskell-prime)
74 *   [Cabal](https://wiki.haskell.org/Cabal) package manager:
75 [User Guide](https://www.haskell.org/cabal/users-guide) |
76 [tool usage](https://wiki.haskell.org/Cabal-Install) |
77 [installing packages](https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package) |
78 [cabal-setup](https://hackage.haskell.org/package/cabal-setup) |
79 [help](https://wiki.haskell.org/Cabal/Survival)
80 [FAQ1](https://wiki.haskell.org/Cabal/FAQ)
81 [FAQ2](https://www.haskell.org/cabal/FAQ.html) |
82 [writing programs](https://wiki.haskell.org/How_to_write_a_Haskell_program)
83 *   [Hackage](https://hackage.haskell.org) package repository
84 *   <form action="https://www.haskell.org/hoogle/" method="get">
85 Haskell API Search:
86 <a href="http://haskell.org/hoogle/">Hoogle</a> <input name="hoogle" type="text" /> |
87 [Hayoo](http://hayoo.fh-wedel.de)
88 </form>
89 *   [Haddock](https://www.haskell.org/haddock) documentation generator:
90 User Guide from [Haskell Platform](https://www.haskell.org/platform/doc/2014.2.0.0/ghc/haddock/index.html) |
91 [latest](https://www.haskell.org/haddock/doc/html) |
92 [FAQ](https://wiki.haskell.org/Haddock/FAQ)
93
94 <!-- -->
95 *   [What I Wish I Knew When Learning Haskell](http://dev.stephendiehl.com/hask) (300 pp. website)
96 *   [Haskell idioms](https://wiki.haskell.org/Blow_your_mind)
97 *   Haskell Wiki [Glossary](https://wiki.haskell.org/Category:Glossary)
98 *   [Reddit's r/haskell](https://www.reddit.com/r/haskell)
99 *   [Stack Overflow](https://stackoverflow.com/questions/tagged/haskell?sort=faq) questions tagged "haskell"
100 *   [Real World Haskell](http://book.realworldhaskell.org/read) (714 pp. text from 2008, expects you've already mastered the fundamentals of Haskell)
101 *   [GHC Developer Wiki](https://ghc.haskell.org/trac/ghc)