Haskell/New contents

From Wikibooks, open books for an open world
< Haskell
Jump to: navigation, search


[edit] Beginner's Track

This section will introduce you to the very basics of the language and some of most frequently used libraries. This will enable you to build simple programs and prepare you for the advanced track.

[edit] Haskell Basics

Getting set up
Variables and functions
Truth values
Type basics
Lists and tuples
Type basics II
Building vocabulary
(Next steps)
Working with lists
Simple input and output


[edit] Elementary Haskell

Recursion
More about lists
List processing
Type declarations
Pattern matching
Control structures
More on functions
Higher order functions
Using GHCi effectively


[edit] Intermediate Haskell

Modules
Indentation
More on datatypes
Other data structures
Class declarations
Classes and types


[edit] Monads

Understanding monads 75% developed  as of May 04, 2010 (May 04, 2010)
do Notation
Advanced monads
Additive monads (MonadPlus)
Monadic parser combinators
Monad transformers
Value recursion (MonadFix)
Practical monads


[edit] Advanced Track

This section will introduce wider functional programming concepts such as different data structures and type theory. It will also cover more practical topics like concurrency.

[edit] Advanced Haskell

Arrows50%.svg
Understanding arrows
Continuation passing style (CPS) 50%.svg
Mutable objects 00%.svg
Zippers 75%.svg
Applicative Functors 50%.svg
Monoids 00%.svg
Concurrency 00%.svg


[edit] Program correctness

Denotational semantics 75%.svg
Equational reasoning
Program derivation
Category theory 100%.svg
The Curry-Howard isomorphism
fix and recursion 100%.svg


[edit] Fun with Types

Polymorphism basics 25%.svg
Existentially quantified types 25%.svg
Advanced type classes 25%.svg
Phantom types 25%.svg
Generalised algebraic data-types (GADT) 25%.svg
Datatype algebra 00%.svg
Type constructors & Kinds 00%.svg


[edit] Haskell in Time and Space

Introduction 50%.svg
Step by Step Examples 00%.svg
Graph reduction 25%.svg
Laziness 25%.svg
Time and space profiling
Strictness 00%.svg
Algorithm complexity 25%.svg
Data structures
Parallelism


[edit] Haskell in Practice

This section covers the more day-to-day issues of working with Haskell, issues such as making use of the standard library, building graphical interfaces or working with databases. You should be able to jump directly to this section from the basic track.

[edit] Libraries Reference

The Hierarchical Libraries
Lists - Arrays - Maybe - Maps
Random Numbers

[edit] Tutorials

Building a standalone application
Debugging
Testing
Graphical user interfaces
Database libraries
Distributing your software with the Cabal
Web programming with Haskell
Personal tools
Namespaces
Variants
Actions
Navigation
Community
Toolbox
Sister projects
Print/export