# Meta-tutorial

### From HaskellWiki

(Difference between revisions)

DonStewart (Talk | contribs) (→Practical stuff) |
m (→You have experience programming: Fixed invalid link.) |
||

(16 intermediate revisions by 11 users not shown) | |||

Line 10: | Line 10: | ||

* [[Haskell in 5 steps]] |
* [[Haskell in 5 steps]] |
||

+ | * [[Learn Haskell in 10 minutes]] |
||

=== You are new to programming === |
=== You are new to programming === |
||

Line 19: | Line 20: | ||

# You are new to functional programming |
# You are new to functional programming |
||

− | #* [http://www.haskell.org/~pairwise/intro/intro.html Haskell for C Programmers] - Haskell hurt your C-oriented brain? Try this. |
+ | #* [[Haskell Tutorial for C Programmers]] - Haskell hurt your C-oriented brain? Try this. |

#* [[Tutorials/Programming Haskell|Programming Haskell]] - [[User:DonStewart| dons]] gets you building useful programs and playing with parallelism from the get-go |
#* [[Tutorials/Programming Haskell|Programming Haskell]] - [[User:DonStewart| dons]] gets you building useful programs and playing with parallelism from the get-go |
||

#* [[Hitchhikers guide to Haskell]] - Sick of tutorials starting slow and boring and then ramping up to incomprehensible? Try the hitchhiker's guide |
#* [[Hitchhikers guide to Haskell]] - Sick of tutorials starting slow and boring and then ramping up to incomprehensible? Try the hitchhiker's guide |
||

+ | #* [http://learnyouahaskell.com/ Learn You a Haskell for Great Good!] Beautiful, illustrated Haskell tutorial |
||

# You have programmed in other functional languages before |
# You have programmed in other functional languages before |
||

#* [[A brief introduction to Haskell]] - Concise tour of Haskell, translated from the article ''A brief introduction to OCaml'' |
#* [[A brief introduction to Haskell]] - Concise tour of Haskell, translated from the article ''A brief introduction to OCaml'' |
||

− | #* A Gentle Introduction? - Gentle seems to be a subjective term... |
+ | #* [http://www.haskell.org/tutorial/ Gentle Introduction To Haskell, version 98] - Gentle seems to be a subjective term... |

#* [http://en.wikibooks.org/wiki/Haskell/Write_Yourself_a_Scheme_in_48_Hours Write Yourself a Scheme in 48 Hours] |
#* [http://en.wikibooks.org/wiki/Haskell/Write_Yourself_a_Scheme_in_48_Hours Write Yourself a Scheme in 48 Hours] |
||

# You just want to see what Haskell looks like at a glance |
# You just want to see what Haskell looks like at a glance |
||

#* [[Simple unix tools]] |
#* [[Simple unix tools]] |
||

− | #* A Tour of the Haskell Syntax |
+ | #* [http://cs.anu.edu.au/student/comp1100/haskell/tourofsyntax.html A Tour of the Haskell Syntax] |

#* [[How to read Haskell]] |
#* [[How to read Haskell]] |
||

− | |||

== Monads == |
== Monads == |
||

Line 37: | Line 38: | ||

# You don't mind Haskell syntax, but you don't neccesarily feel comfortable working with monads (for example, with do notation) |
# You don't mind Haskell syntax, but you don't neccesarily feel comfortable working with monads (for example, with do notation) |
||

#* [http://sigfpe.blogspot.com/2006/08/you-could-have-invented-monads-and.html You could have invented monads! (And Maybe you Already Have!)] |
#* [http://sigfpe.blogspot.com/2006/08/you-could-have-invented-monads-and.html You could have invented monads! (And Maybe you Already Have!)] |
||

+ | #* [http://ertes.de/articles/monads.html Understanding Haskell Monads] |
||

+ | #* [http://monads.haskell.cz/html/index.html All About Monads] |
||

# You learn best by doing exercises |
# You learn best by doing exercises |
||

# You learn by metaphor or analogy |
# You learn by metaphor or analogy |
||

#* [http://en.wikibooks.org/wiki/Haskell/Understanding_monads Understanding monads] |
#* [http://en.wikibooks.org/wiki/Haskell/Understanding_monads Understanding monads] |
||

+ | #* [http://www.haskell.org/haskellwiki/Monads_as_containers Monads as containers] |
||

# You understand simple monads but now you need to make them nest and do tricks |
# You understand simple monads but now you need to make them nest and do tricks |
||

− | #* [http://uebb.cs.tu-berlin.de/~magr/pub/Transformers.pdf Monad Transformers Step by Step] |
+ | #* [http://www.grabmueller.de/martin/www/pub/Transformers.pdf Monad Transformers Step by Step] |

+ | #* [http://sigfpe.blogspot.com/2006/05/grok-haskell-monad-transformers.html Grok Monad Transformers] |
||

# You want to see monads in practice |
# You want to see monads in practice |
||

#* [http://en.wikibooks.org/wiki/Haskell/Practical_monads Practical monads] |
#* [http://en.wikibooks.org/wiki/Haskell/Practical_monads Practical monads] |
||

# You understand category theory and you want to know what's the link between category theory monads and Haskell monads |
# You understand category theory and you want to know what's the link between category theory monads and Haskell monads |
||

#* [http://db.ewi.utwente.nl/Publications/PaperStore/db-utwente-0000003696.pdf The Haskell Programmer's Guide to the IO Monad] |
#* [http://db.ewi.utwente.nl/Publications/PaperStore/db-utwente-0000003696.pdf The Haskell Programmer's Guide to the IO Monad] |
||

+ | # You have read a monad tutorial and want to see an overview of the basic monad functions with usage examples |
||

+ | #* [http://members.chello.nl/hjgtuyl/tourdemonad.html A tour of the Haskell Monad functions] |
||

+ | |||

+ | == Other subjects == |
||

+ | |||

+ | * Enumerators |
||

+ | ** [http://www.mew.org/~kazu/proj/enumerator/ A tutorial on the enumerator library] (29.03.2011) |
||

+ | |||

== Practical stuff == |
== Practical stuff == |
||

Line 51: | Line 63: | ||

# You want to write a real life application or library |
# You want to write a real life application or library |
||

#* [[How to write a Haskell program]] |
#* [[How to write a Haskell program]] |
||

− | # You want to just do IO and command line argument handling |
+ | # You're sick of all these explanations! Is a cookbook too much to ask? |

− | #* [http://www.cse.unsw.edu.au/~dons/blog/2006/12/18#ph-3 Programming Haskell: argument handling] |
+ | #* [[Cookbook]] |

+ | # You especially want to know about doing IO |
||

+ | #* [[Introduction to IO]] - a quick overview |
||

+ | #* [http://www.cse.unsw.edu.au/~dons/blog/2006/12/18#ph-3 Programming Haskell: argument handling] - command line arguments too |
||

# You want to write a simple network client |
# You want to write a simple network client |
||

#* [[Roll your own IRC bot]] |
#* [[Roll your own IRC bot]] |
||

Line 65: | Line 77: | ||

[[Category:Tutorials]] |
[[Category:Tutorials]] |
||

+ | |||

+ | Languages: [[Metaチュートリアル|ja]] |

## Latest revision as of 09:52, 13 June 2012

*what i would like is a meta-tutorial**a list of questions about haskell, what does this do, do you understand this etc*-
*and if you say no, it points you at a tutorial which explains it*-- ndm on #haskell

One size does not fit all! The meta-tutorial aims to help you find the Haskell tutorials that **you** need. Note that from our description of things, some tutorials might seem "too easy" for your level, but they might be worth checking out anyway, for example, because they are particularly clear or well written.

## Contents |

## [edit] 1 Haskell in general

### [edit] 1.1 You just want a quick start

### [edit] 1.2 You are new to programming

### [edit] 1.3 You have experience programming

- You are new to functional programming
- Haskell Tutorial for C Programmers - Haskell hurt your C-oriented brain? Try this.
- Programming Haskell - dons gets you building useful programs and playing with parallelism from the get-go
- Hitchhikers guide to Haskell - Sick of tutorials starting slow and boring and then ramping up to incomprehensible? Try the hitchhiker's guide
- Learn You a Haskell for Great Good! Beautiful, illustrated Haskell tutorial

- You have programmed in other functional languages before
- A brief introduction to Haskell - Concise tour of Haskell, translated from the article
*A brief introduction to OCaml* - Gentle Introduction To Haskell, version 98 - Gentle seems to be a subjective term...
- Write Yourself a Scheme in 48 Hours

- A brief introduction to Haskell - Concise tour of Haskell, translated from the article
- You just want to see what Haskell looks like at a glance

## [edit] 2 Monads

- You are new to Haskell
- You don't mind Haskell syntax, but you don't neccesarily feel comfortable working with monads (for example, with do notation)
- You learn best by doing exercises
- You learn by metaphor or analogy
- You understand simple monads but now you need to make them nest and do tricks
- You want to see monads in practice
- You understand category theory and you want to know what's the link between category theory monads and Haskell monads
- You have read a monad tutorial and want to see an overview of the basic monad functions with usage examples

## [edit] 3 Other subjects

- Enumerators
- A tutorial on the enumerator library (29.03.2011)

## [edit] 4 Practical stuff

- You want to write a real life application or library
- You're sick of all these explanations! Is a cookbook too much to ask?
- You especially want to know about doing IO
- Introduction to IO - a quick overview
- Programming Haskell: argument handling - command line arguments too

- You want to write a simple network client
- You want to build a graphical user interface
- You want to write a compiler or interpreter

Languages: ja