# Meta-tutorial

### From HaskellWiki

(Difference between revisions)

m (→You have experience programming: Fixed invalid link.) |
|||

(39 intermediate revisions by 14 users not shown) | |||

Line 3: | Line 3: | ||

: ''and if you say no, it points you at a tutorial which explains it'' -- ndm on #haskell | : ''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. | + | 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. |

+ | |||

+ | == Haskell in general == | ||

+ | |||

+ | === You just want a quick start === | ||

+ | |||

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

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

+ | |||

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

+ | |||

+ | * [http://en.wikibooks.org/wiki/Haskell The Haskell wikibook] | ||

+ | * [http://en.wikibooks.org/wiki/Haskell/YAHT Yet Another Haskell Tutorial] | ||

+ | |||

+ | === You have experience programming === | ||

+ | |||

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

+ | #* [[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 | ||

+ | #* [[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 | ||

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

+ | #* [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] | ||

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

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

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

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

== Monads == | == 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) |

− | # | + | #* [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 by metaphor or analogy |

− | #* | + | #* [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 | ||

+ | #* [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 | ||

+ | #* [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 | ||

+ | #* [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 == | ||

+ | |||

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

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

+ | # You're sick of all these explanations! Is a cookbook too much to ask? | ||

+ | #* [[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 | ||

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

+ | # You want to build a graphical user interface | ||

+ | #* [http://en.wikibooks.org/wiki/Haskell/GUI Introductory gui programming] | ||

+ | #* [http://www.haskell.org/gtk2hs/documentation/#tutorials With gtk2hs] | ||

+ | #* [http://wxhaskell.sourceforge.net/quickstart.html With wxHaskell] | ||

+ | # You want to write a compiler or interpreter | ||

+ | #* [http://www.cse.unsw.edu.au/~dons/blog/2006/12/11#interpreters-with-reader-monads Quick interpreters with the Reader monad] | ||

+ | #* [http://www.defmacro.org/ramblings/lisp-in-haskell.html Writing A Lisp Interpreter In Haskell] | ||

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

[[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