Haskell Programming

Haskell Programming

Haskell is a functional programming language. If you have programmed before and would like to see a little bit of how Haskell works and is different from other programming languages, you can get an overview in this ebook.

Haskell is unique for two reasons. The first is that it is purely functional. If you have a function and you call it twice in two different places with the same arguments then it will return exactly the same value both times. Secondly, Haskell provides a very modern type system which incorporates features like typeclasses and generalized algebraic data types.

So, why do Haskellers like the language then? Is it just because we like using things that are unique and modern? No, Haskell programmers enjoy their work because dealing with just pure functions makes it so much easier to understand our programs and prove them correct. Moreover, having an advanced type system helps us catch our mistakes, both the silly and profound ones.

In this book we aim to introduce you both to the Haskell language, from the very basics to its most advanced features, and to computer programming in general.

Topics covered:

  • Database
  • Truth values
  • Understanding monads/State
  • Continuation passing style
  • Syntactic sugar
  • RegExp
  • Variables and functions
  • Monad transformers
  • Recursion
  • Debugging
  • Beginning
  • YAHT
  • YAHT/Introduction
  • YAHT/Preamble
  • YAHT/Getting started
  • YAHT/Language advanced
  • YAHT/Complexity
  • YAHT/Modules/Solutions
  • YAHT/Io
  • YAHT/Io advanced
  • YAHT/Recursion
  • YAHT/Type basics/Solutions
  • YAHT/Language basics
  • YAHT/Modules
  • YAHT/Monads
  • YAHT/Type advanced
  • Type basics
  • Indentation
  • Performance Introduction
  • Testing
  • Hierarchical libraries
  • Preliminaries
  • List processing
  • Time and space profiling
  • Laziness
  • Polymorphism
  • Style conventions
  • Using GHCi effectively
  • Applications
  • Performance Examples
  • Strictness
  • Control structures
  • Solutions/Indentation
  • Mutable objects
  • Understanding monads
  • StephensArrowTutorial
  • Type basics
  • Type declarations
  • Understanding monads/Maybe
  • Modules
  • Pattern matching
  • Language advanced/Solutions
  • The Curry-Howard isomorphism
  • Notes for contributors
  • Graph reduction
  • Understanding arrows
  • Simple input and output
  • Hierarchical libraries/Maybe
  • Classes and types
  • The Functor class
  • Experimental Modules
  • Understanding monads/List
  • Recursion
  • Monoids
  • Monadic parser combinators
  • Applicative Functors
  • Arrows
  • Next steps
  • Zippers
  • More about lists
  • Category theory
  • Modules
  • SYB
  • Denotational semantics
  • Hierarchical libraries/Randoms
  • Getting set up
  • Continuation passing style
  • GADT
  • Graph reduction
  • Fix and recursion
  • Kinds
  • do Notation
  • Arrows
  • XML
  • More on functions
  • Advanced type classes
  • Applications
  • Haskell
  • Higher-order functions and Currying
  • Web programming
  • Lists and tuples
  • Concurrency
  • Denotational semantics
  • FFI
  • Algorithm complexity
  • Polymorphism
  • Existentially quantified types
  • Solutions/Denotational semantics
  • Packaging
  • Hierarchical libraries
  • Hierarchical libraries/Lists
  • Hierarchical libraries/Maps
  • Hierarchical libraries/IO
  • Hierarchical libraries/Arrays
  • Practical monads
  • Haskell
  • Phantom types
  • MonadPlus
  • GUI
  • ParseExps
  • Advanced monads
  • Laziness
  • Getting set up
  • Solutions/Recursion
  • Building vocabulary
  • Understanding monads

You can download this EBook for FREE from Google Play Store at Android app on Google Play


No comments:

Post a Comment