Real World Haskell : Code You Can Believe In

by ; ;
  • ISBN13:


  • ISBN10:


  • Edition: 1st
  • Format: Paperback
  • Copyright: 2008-12-05
  • Publisher: Oreilly & Associates Inc

Note: Supplemental materials are not guaranteed with Rental or Used book purchases.

Purchase Benefits

  • Free Shipping On Orders Over $35!
    Your order must be $35 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
List Price: $49.99 Save up to $5.00
  • Rent Book $44.99
    Add to Cart Free Shipping


Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.
  • The Rental and eBook copies of this book are not guaranteed to include any supplemental materials. Typically, only the book itself is included. This is true even if the title states it includes any access cards, study guides, lab manuals, CDs, etc.


This is the book for software developers who want to learn Haskell and use it to do real work. There are a number of books on Haskell out there, but they're all either textbooks or academic books; the textbooks use Pascal as a language for teaching computer science. There isn't anything out there that shows you how to use Haskell to write software that's actually useful. There's been a significant upsurge of interest in Haskell and other functional programming languages. It's not clear what's driving this interest, but one of the factors may be the importance of concurrent programming and new computer architectures. The book introduces readers to the language, but it's a fairly fast and brief tutorial, rather than a textbook. It pays special attention to real- world issues like I/O, performance, dealing with external data, databases, concurrency, and web applications.

Author Biography

Bryan O'Sullivan is an Irish hacker and writer who likes distributed systems, open source software, and programming languages. He was a member of the initial design team for the Jini network service architecture (subsequently open sourced as Apache River). He has made significant contributions to, and written a book about, the popular Mercurial revision control system. He lives in San Francisco with his wife and sons. Whenever he can, he runs off to climb rocks.

John Goerzen is an American hacker and author. He has written a number of real-world Haskell libraries and applications, including the HDBC database interface, the ConfigFile configuration file interface, a podcast downloader, and various other libraries relating to networks, parsing, logging, and POSIX code. John has been a developer for the Debian GNU/Linux operating system project for over 10 years and maintains numerous Haskell libraries and code for Debian. He also served as President of Software in the Public Interest, Inc., the legal parent organization of Debian. John lives in rural Kansas with his wife and son, where he enjoys photography and geocaching.

Don Stewart is an Australian hacker based in Portland, Oregon. Don has been involved in a diverse range of Haskell projects, including practical libraries, such as Data.ByteString and Data.Binary, as well as applying the Haskell philosophy to real-world applications including compilers, linkers, text editors, network servers, and systems software. His recent work has focused on optimizing Haskell for high-performance scenarios, using techniques from term rewriting.

Table of Contents

Have We Got a Deal for You!
What to Expect from This Book
What to Expect from Haskell
A Brief Sketch of Haskell's History
Helpful Resources
Conventions Used in This Book
Using Code Examples
Safari(r) Books Online
How to Contact Us
Getting Started
Your Haskell Environment
Getting Started with ghci, the Interpreter
Basic Interaction: Using ghci as a Calculator
Command-Line Editing in ghci
Strings and Characters
First Steps with Types
A Simple Program
Types and Functions
Why Care About Types?
Haskell's Type System
What to Expect from the Type System
Some Common Basic Types
Function Application
Useful Composite Data Types: Lists and Tuples
Functions over Lists and Tuples
Function Types and Purity
Haskell Source Files, and Writing Simple Functions
Understanding Evaluation by Example
Polymorphism in Haskell
The Type of a Function of More Than One Argument
Why the Fuss over Purity?
Defining Types, Streamlining Functions
Defining a New Data Type
Type Synonyms
Algebraic Data Types
Pattern Matching
Record Syntax
Parameterized Types
Recursive Types
Reporting Errors
Introducing Local Variables
The Offside Rule and Whitespace in an Expression
The case Expression
Common Beginner Mistakes with Patterns
Conditional Evaluation with Guards
Functional Programming
Thinking in Haskell
A Simple Command-Line Framework
Warming Up: Portably Splitting Lines of Text
Infix Functions
Working with Lists
How to Think About Loops
Anonymous (lambda) Functions
Partial Function Application and Currying
Code Reuse Through Composition
Tips for Writing Readable Code
Space Leaks and Strict Evaluation
Writing a Library: Working with JSON Data
A Whirlwind Tour of JSON
Representing JSON Data in Haskell
The Anatomy of a Haskell Module
Compiling Haskell Source
Generating a Haskell Program and Importing Modules
Printing JSON Data
Type Inference Is a Double-Edged Sword
A More General Look at Rendering
Developing Haskell Code Without Going Nuts
Pretty Printing a String
Arrays and Objects, and the Module Header
Table of Contents provided by Publisher. All Rights Reserved.

Rewards Program

Write a Review