Haskell Tutorial and Cookbook
Haskell Tutorial and Cookbook
Minimum price
Suggested price
Haskell Tutorial and Cookbook

This book is 100% complete

Completed on 2018-01-15

About the Book

Functional programming is the paradigm that is replacing object oriented methodologies. The Haskell language has several advantages for functional programming: the language is mature, is supported by many libraries and development tools, and compiles to compact and efficient executable programs that can be "single file" deployed.

Haskell does have a steep learning curve in general but in this book I show you a small but effective subset of Haskell that will get you started quickly.

This book also provides something for more experienced Haskell developers: new ideas for Haskell applications and example code that is likely to be useful for your own projects.

The first section of this book contains two chapters:

- A tutorial on pure Haskell development: no side effects.

- A tutorial on impure Haskell development: dealing with the world (I/O, network access, database access, etc.)

After working through these tutorial chapters you will understand enough of Haskell development to understand and be able to modify for your own use the cookbook examples in the second section. Some of the general topics will be covered again in the second book section that contains longer sample applications. For example, you will learn the basics for interacting with Sqlite and Postgres databases in the tutorial on impure Haskell code but you will see a much longer example later in the book when I provide code for a Blackjack playing program.

The second section of this book contains the following recipes implemented as complete programs:

- Textprocessing CSV Files

- Textprocessing JSON Files

- Natural Language Processing (NLP) tools

- Client and Server network programming examples

- Access data on the Web using scraping and by querying Semantic Web RDF Data Sources

- Annotating English text with Wikipedia/DBPedia URIs for entities in the original text. Entities can be people, places, organizations, etc.

- Using sqlite and Postgres databases.

- Play a simple form of the Blackjack card game.

About the Author

Mark Watson
Mark Watson

Mark Watson a consultant specializing in machine learning, artificial intelligence, cognitive computing, and web engineering. He uses Java, Clojure, Haskell, Python, and Ruby for development.

He is the author of 23 published books on Artificial Intelligence, Deep Learning, Java, Ruby, Machine Learning, Common LISP, Clojure, JavaScript, Semantic Web, NLP, C++, Linux, and Scheme.

Mark's consulting customer list includes: Google, Capital One, CompassLabs, Disney, Sitescout.com, Embed.ly, and Webmind Corporation.

web site:  https://markwatson.com/

Table of Contents

  • Cover Material, Copyright, and License
  • Preface
    • A Request from the Author
    • Structure of the Book
    • Code Examples
    • Functional Programming Requires a Different Mind Set
    • eBooks Are Living Documents
    • Setting Up Your Development Environment
    • Why Haskell?
    • Enjoy Yourself
    • Acknowledgements
  • Section 1 - Tutorial
  • Tutorial on Pure Haskell Programming
    • Interactive GHCi Shell
    • Introduction to Haskell Types
    • Functions Are Pure
    • Using Parenthesis or the Special $ Character and Operator Precedence
    • Lazy Evaluation
    • Understanding List Comprehensions
    • Haskell Rules for Indenting Code
    • Understanding let and where
    • Conditional do Expressions and Anonymous Functions
    • Maps
    • Sets
    • More on Functions
    • Comments on Dealing With Immutable Data and How to Structure Programs
    • Error Handling
    • Testing Haskell Code
    • Pure Haskell Wrap Up
  • Tutorial on Impure Haskell Programming
    • Hello IO () Monad
    • A Note About >> and >>= Operators
    • Console IO Example with Stack Configuration
    • File IO
    • Error Handling in Impure Code
    • Network IO
    • A Haskell Game Loop that Maintains State Functionally
    • A More Detailed Look at Monads
    • Using Applicative Operators <$> and <*>: Finding Common Words in Files
    • List Comprehensions Using the do Notation
    • Dealing With Time
    • Using Debug.Trace
    • Wrap Up
  • Section 2 - Cookbook
  • Text Processing
    • CSV Spreadsheet Files
    • JSON Data
    • Cleaning Natural Language Text
  • Natural Language Processing Tools
    • Resolve Entities in Text to DBPedia URIs
    • Bag of Words Classification Model
    • Text Summarization
    • Part of Speech Tagging
    • Natural Language Processing Wrap Up
  • Linked Data and the Semantic Web
    • The SPARQL Query Language
    • A Haskell HTTP Based SPARQL Client
    • Querying Remote SPARQL Endpoints
    • Linked Data and Semantic Web Wrap Up
  • Web Scraping
    • Using the Wreq Library
    • Using the HandsomeSoup Library for Parsing HTML
    • Web Scraping Wrap Up
  • Using Relational Databases
    • Database Access for Sqlite
    • Database Access for Postgres
  • Haskell Program to Play the Blackjack Card Game
  • Book Wrap Up
  • Appendix A - Haskell Tools Setup
    • stack
    • Emacs Setup
    • Do you want more of an IDE-like Development Environment?
    • hlint

The Leanpub 45-day 100% Happiness Guarantee

Within 45 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.

See full terms...

Write and Publish on Leanpub

Authors, publishers and universities use Leanpub to publish amazing in-progress and completed books and courses, just like this one. You can use Leanpub to write, publish and sell your book or course as well! Leanpub is a powerful platform for serious authors, combining a simple, elegant writing and publishing workflow with a store focused on selling in-progress ebooks. Leanpub is a magical typewriter for authors: just write in plain text, and to publish your ebook, just click a button. It really is that easy.

Learn more about writing on Leanpub