Haskell/New contents

From Wikibooks, the open-content textbooks collection

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
Lists and tuples
Next steps
Type basics
Simple input and output
Type declarations


[edit] Elementary Haskell

Recursion
List processing
More about lists
Pattern matching
Control structures
More on functions
Higher order functions Development stage: 50% (as of unknown)(unknown)


[edit] Intermediate Haskell

Modules
Indentation
More on datatypes
Class declarations
Classes and types
Keeping track of State


[edit] Monads

Understanding monads Development stage: 25% (as of unknown)(unknown)
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%.png
Understanding arrows
Continuation passing style (CPS) 50%.png
Mutable objects 00%.png
Zippers 75%.png
Applicative Functors 50%.png
Monoids 00%.png
Concurrency 00%.png


[edit] Program correctness

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


[edit] Fun with Types

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


[edit] Haskell in Time and Space

Introduction 50%.png
Step by Step Examples 00%.png
Graph reduction 25%.png
Laziness 25%.png
Strictness 00%.png
Algorithm complexity 25%.png
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