add note on sections
[lambda.git] / _learning_haskell.mdwn
1 *   [Try Haskell in your browser](http://tryhaskell.org) (slow, bare-bones) <!-- other websites listed at https://wiki.haskell.org/Learning_Haskell#Trying_Haskell_online -->
2 *   This site's guide to [[Installing Haskell|/installing#haskell]]
3
4 <!-- -->
5 *   [Learn Haskell in 10 minutes](https://wiki.haskell.org/Learn_Haskell_in_10_minutes)
6 *   Haskell Wiki's [Introduction and explanation of Haskell](https://wiki.haskell.org/Introduction)
7 *   [Haskell FAQ](https://wiki.haskell.org/FAQ)
8 *   Wikipedia on
9 [Haskell](https://en.wikipedia.org/wiki/Haskell_%28programming_language%29) |
10 [GHC](https://en.wikipedia.org/wiki/Glasgow_Haskell_Compiler)
11 <!-- [Haskell Wiki's Getting Started](https://wiki.haskell.org/Haskell_in_5_steps) -->
12
13 <!-- -->
14 *   [Haskell Wiki](https://wiki.haskell.org), with a link to download the [Haskell Platform](https://www.haskell.org/platform/contents.html)
15 *   [New Haskell Wiki](https://new-www.haskell.org)
16
17 ### For people who are new to programming ###
18
19 *   [The Haskell Wikibook](https://en.wikibooks.org/wiki/Haskell) <!-~
20     Beginners track assumes no programming background. Supposed to include adaptations of:
21     [Yet Another Haskell Tutorial](https://en.wikibooks.org/wiki/Yet_Another_Haskell_Tutorial/Preamble) (YAHT)
22       http://hal3.name/docs/daume02yaht.pdf
23       https://web.archive.org/web/20060717023859/http://www.isi.edu/~hdaume/htut/tutorial.pdf
24     [Write Yourself a Scheme in 48 Hours](http://en.wikibooks.org/wiki/Write_Yourself_a_Scheme_in_48_Hours)
25     [All about Monads](http://monads.haskell.cz/html/index.html)
26       https://wiki.haskell.org/All_About_Monads
27     ~->
28 *   [More Tutorials](https://wiki.haskell.org/Tutorials)
29
30 ### For experienced programmers ###
31
32 *   [A brief introduction to Haskell](https://wiki.haskell.org/A_brief_introduction_to_Haskell)
33 *   [Haskell Tutorial for C Programmers](https://wiki.haskell.org/Haskell_Tutorial_for_C_Programmers)
34 *   [How to read Haskell](https://wiki.haskell.org/How_to_read_Haskell)
35 *   [Hitchhiker's guide to Haskell](https://wiki.haskell.org/Hitchhikers_guide_to_Haskell)
36 *   [Learn You a Haskell for Great Good](http://learnyouahaskell.com/chapters) (textbook)
37 *   A Not-So-[Gentle Introduction to Haskell](https://www.haskell.org/tutorial) (from 2000)
38 *   [Haskell-Tutorial](ftp://ftp.geoinfo.tuwien.ac.at/navratil/HaskellTutorial.pdf)
39 *   [The Haskell Road to Logic, Math and Programming](http://fldit-www.cs.uni-dortmund.de/~peter/PS07/HR.pdf)
40 *   [Real World Haskell](http://book.realworldhaskell.org/read) (textbook from 2008)
41
42 <!-- -->
43 *   [Lambda Lessons](https://stevekrouse.github.io/hs.js): interactive lessons on pattern matching, first-class functions, and abstracting over recursion in Haskell
44
45
46 <!-~
47 * Wadler, [Monads for functional programming](http://homepages.inf.ed.ac.uk/wadler/papers/marktoberdorf/baastad.pdf)
48
49 Don't mind Haskell syntax, but not yet comfortable with do-notation / monads
50 * [You could have invented monads! (and maybe you already have!)](http://sigfpe.blogspot.com/2006/08/you-could-have-invented-monads-and.html)
51 * [Understanding Haskell Monads](http://web.archive.org/web/20120626020258/http://ertes.de/articles/monads.html)
52
53 Metaphors and analogies
54 * [Understanding monads](http://en.wikibooks.org/wiki/Haskell/Understanding_monads)
55 * [Monads as containers](http://www.haskell.org/haskellwiki/Monads_as_containers)
56
57 Making monads nest
58 * [Monad Transformers Step by Step](http://www.cs.virginia.edu/~wh5a/personal/Transformers.pdf)
59 * [Grok Haskell Monad Transformers](http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html)
60
61 Links to Category Theory
62 * [The Haskell Programmer's Guide to the IO Monad](http://doc.utwente.nl/53411/1/00000154.pdf)
63
64 * [Quick Introduction to IO](https://wiki.haskell.org/Introduction_to_IO)
65 * [Tackling the awkward squad](http://research.microsoft.com/en-us/um/people/simonpj/papers/marktoberdorf/mark.pdf): monadic I/O, concurrency, exceptions, and FFI in Haskell
66 * [IO inside](https://wiki.haskell.org/IO_inside)
67 * [A tour of the Haskell Monad functions](http://members.chello.nl/hjgtuyl/tourdemonad.html)
68 * [What the hell are monads?](https://web.archive.org/web/20040404212440/http://www.abercrombiegroup.co.uk/~noel/research/monads.html)
69 ~->
70
71
72 ### More Advanced Docs ###
73
74 *   GHC User's Guide from
75 [Haskell Platform](https://www.haskell.org/platform/doc/2014.2.0.0/ghc/users_guide) | 
76 [latest](https://downloads.haskell.org/~ghc/latest/docs/html/users_guide)
77 *   Libraries from
78 [Haskell Platform](https://www.haskell.org/platform/doc/2014.2.0.0/platform/doc) |
79 [Haskell 2010](https://www.haskell.org/onlinereport/haskell2010/haskellpa2.html) <!--
80 [GHC latest bootstrap libraries](https://downloads.haskell.org/~ghc/latest/docs/html/libraries)
81 -->
82 *   GHC [releases](https://www.haskell.org/ghc) and
83 [other docs](https://wiki.haskell.org/GHC), including
84 [GHCi](https://wiki.haskell.org/GHC/GHCi) and
85 [GHC FAQ](https://wiki.haskell.org/GHC/FAQ)
86 *   Formal language specs:
87 [Haskell 98](https://www.haskell.org/onlinereport) |
88 [Haskell 2010](https://www.haskell.org/onlinereport/haskell2010) |
89 [Haskell'](https://ghc.haskell.org/trac/haskell-prime)
90 *   [What I Wish I Knew When Learning Haskell](http://dev.stephendiehl.com/hask)
91 *   [Cabal](https://wiki.haskell.org/Cabal) package manager:
92 [User Guide](https://www.haskell.org/cabal/users-guide) |
93 [command-line tool](https://wiki.haskell.org/Cabal-Install) |
94 [installing Cabal packages](https://wiki.haskell.org/Cabal/How_to_install_a_Cabal_package) |
95 [cabal-setup](https://hackage.haskell.org/package/cabal-setup) |
96 help with [problems](https://wiki.haskell.org/Cabal/Survival)
97 [FAQ1](https://wiki.haskell.org/Cabal/FAQ)
98 [FAQ2](https://www.haskell.org/cabal/FAQ.html) |
99 [writing Haskell programs](https://wiki.haskell.org/How_to_write_a_Haskell_program)
100 *   [Hackage](https://hackage.haskell.org) package database
101 *   Haskell API Search: [Hoogle](https://www.haskell.org/hoogle) | [Hayoo](http://hayoo.fh-wedel.de)
102 *   [Haddock](https://www.haskell.org/haddock) documentation generator:
103 User Guide from [Haskell Platform](https://www.haskell.org/platform/doc/2014.2.0.0/ghc/haddock/index.html) |
104 [latest](https://www.haskell.org/haddock/doc/html) |
105 [FAQ](https://wiki.haskell.org/Haddock/FAQ)
106
107 <!-- -->
108 *   [Reddit's r/haskell](https://www.reddit.com/r/haskell)
109 *   [Stack Overflow](https://stackoverflow.com/questions/tagged/haskell?sort=faq) questions tagged "haskell"
110 *   [GHC Developer Wiki](https://ghc.haskell.org/trac/ghc)
111
112
113 ### Miscellany ###
114
115 * <http://foswiki.cs.uu.nl/foswiki/Techno/ProgrammingLanguageTheoryTextsOnline>
116
117 * <https://wiki.haskell.org/Research_papers>
118 * <https://wiki.haskell.org/Mathematics>
119
120
121 * [The Implementation of Functional Programming Languages](http://research.microsoft.com/en-us/um/people/simonpj/Papers/slpj-book-1987/index.htm), Simon Peyton Jones, published by Prentice Hall, 1987
122
123 * [Type Theory and Functional Programming](http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/), Simon Thompson, Addison-Wesley, 1991. ISBN 0-201-41667-0. Hardcover: 388 pages. 
124
125 * From 1995, Jeroen Fokker's _Functional Programming_ <http://www.staff.science.uu.nl/~fokke101/courses/fp-eng.pdf>
126
127 * A Tour of the Haskell Prelude <http://www.letu.edu/people/jaytevis/Programming-Languages/Haskell/tourofprelude.html>
128
129 * A tour of the Haskell Monad functions <http://members.chello.nl/hjgtuyl/tourdemonad.html>
130
131 * <https://wiki.haskell.org/Reference_card>
132 * Haskell Cheat Sheet <http://cheatsheet.codeslower.com/CheatSheet.pdf>
133
134 * Glossary <https://wiki.haskell.org/Category:Glossary>
135
136
137 * The paper that for the first time introduced type classes and their
138 implementation using dictionaries, <http://homepages.inf.ed.ac.uk/wadler/papers/class/class.ps.gz>
139
140 * <https://wiki.haskell.org/Research_papers/Type_systems#Type_classes>
141
142 * Generic Programming / <https://wiki.haskell.org/Scrap_your_boilerplate>
143
144 * <http://legacy.cs.uu.nl/daan/download/parsec/parsec.html>
145 * <https://wiki.haskell.org/Modern_array_libraries>
146
147