Welcome to Scribd, the world's digital library. Read, publish, and share books and documents. See more
Download
Standard view
Full view
of .
Save to My Library
Look up keyword or section
Like this
1Activity

Table Of Contents

Variables
Types
Variables within variables
Functions
Functions within functions
Lists
Tuples
Summary
Haskell files
More about functions
Introduction
Using the interactive :type command
Functional types
Polymorphic types
Type signatures in code
Type inference
Actions
Actions under the microscope
Learn more
Numeric recursion
List-based recursion
Don't get TOO excited about recursion
What is pattern matching?
Where you can use it
Constructing Lists
Deconstructing lists
Equations and Case Expressions
Guards
The difference between if and case
Map
Folds
Scans
Private Functions
Anonymous Functions
Infix versus Prefix
The Quickest Sorting Algorithm In Town
Now, How Do We Use It?
Tweaking What We Already Have
But What Did We Gain?
Higher-Order Functions and Types
Currying
Importing
Exporting
Notes
The golden rule of indentation
A mechanical translation
Layout in action
References
Enumerations
Named Fields (Record Syntax)
Parameterised Types
Kind Errors
Trees
Other datatypes
Deriving
Class Inheritance
Standard Classes
Classes and Types
Notes and TODOs
Stateful Computations
Programming with bind and return
Monads as containers
Monads as computations
Further reading
Example
The MonadPlus laws
Useful functions
Exercises
Relationship with Monoids
Implementing transformers
The State monad transformer
Acknowledgements
Parsing monads
Generic monads
Monads and arrows
The factory and conveyor belt metaphor
Plethora of robots
Functions are arrows
The arrow notation
Maybe functor
Using arrows
Monads can be arrows too
Arrows in practice
See also
Starting simple
Using the Cont monad
Example: a complicated control structure
Example: exceptions
Example: coroutines
The ST and IO monads
State references: STRef and IORef
Mutable arrays
Examples
Theseus and the Zipper
The forall keyword
Example: heterogeneous lists
Example: runST
Terms depending on types
Ad-hoc and parametric polymorphism
Polymorphism in Haskell
Higher-rank polymorphism
Multi-parameter type classes
Functional dependencies
GADT-style syntax
What GADTs give us
Safe Lists
A simple expression evaluator
Discussion
Bottom and Partial Functions
Recursive Definitions as Fixed Point Iterations
Strict and Non-Strict Semantics
Algebraic Data Types
Other Selected Topics
Footnotes
External Links
Introduction to categories
Functors
The monad laws and their importance
Evaluating Expressions by Lazy Evaluation
Controlling Space
Reasoning about Time
Implementation of Graph reduction
Thunks and Weak head normal form
Lazy and strict functions
Lazy pattern matching
Techniques with Lazy Evaluation
Conclusions about laziness
Difference between strict and lazy evaluation
Why laziness can be problematic
Strictness annotations
seq
Optimising
Haddock Documentation
Theory
Definition
Basic list usage
List utilities
Random examples
The Standard Random Number Generator
Using QuickCheck to Generate Random Data
The Main module
Other modules?
Quickcheck
HUnit
Recommended tools
Structure of a simple project
Libraries
Automation
Licenses
Releases
Hosting
Getting and running wxHaskell
Hello World
Controls
Layout
Attributes
Events
Getting aquainted with HXT
0 of .
Results for:
No results containing your search query
P. 1
Haskell

Haskell

Ratings: (0)|Views: 3,170|Likes:
Published by Yash Gautam

More info:

Published by: Yash Gautam on Nov 05, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

05/25/2012

pdf

text

original

You're Reading a Free Preview
Pages 6 to 130 are not shown in this preview.
You're Reading a Free Preview
Pages 136 to 171 are not shown in this preview.
You're Reading a Free Preview
Pages 177 to 178 are not shown in this preview.
You're Reading a Free Preview
Pages 184 to 203 are not shown in this preview.
You're Reading a Free Preview
Pages 209 to 290 are not shown in this preview.

You're Reading a Free Preview

Download
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->