Haskell Tutorial and Cookbook
Haskell Tutorial and Cookbook
About the Book
Note: the edition was released September 14, 2024 There is a free upgrade for readers who purchased the first edition. This book (and all of my Leanpub books) are also available for free on my web site https://markwatson.com/books/ if you would like them for free.
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:
- Using the OpenAI API for text completion
- Using the Brave search APIs
- 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.
The third section (added for the second edition) contains:
- Automatic generation of Knowledge Graphs
- Hybrid Haskell + Python NLP examples
Table of Contents
- Cover Material, Copyright, and License
- Preface
- 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
- Using the OpenAI Large Language Model APIs in Haskell
- A Web Application For Using the Google Gemini APIs
- Command Line Utility To Use the Google Gemini APIs
- Command Line Tool to Use Local Ollama LLM Server
- Using the Brave Search API
- Text Processing
- Natural Language Processing Tools
- Linked Data and the Semantic Web
- Web Scraping
- Using Relational Databases
- Haskell Program to Play the Blackjack Card Game
- Section 3 - Larger Projects
-
Knowledge Graph Creator
- Code Layout For the KGCreator Project and strategies for sharing Haskell code between projects
- The Main Event: Detecting Entities in Text
- Utility Code for Generating RDF
- Utility Code for Generating Cypher Input Data for Neo4J
- Top Level API Code for Handling Knowledge Graph Data Generation
- Wrap Up for Automating the Creation of Knowledge Graphs
- Hybrid Haskell and Python Natural Language Processing
- Hybrid Haskell and Python For Coreference Resolution
- Book Wrap Up
- Appendix A - Haskell Tools Setup
The Leanpub 60 Day 100% Happiness Guarantee
Within 60 days of purchase you can get a 100% refund on any Leanpub purchase, in two clicks.
Now, this is technically risky for us, since you'll have the book or course files either way. But we're so confident in our products and services, and in our authors and readers, that we're happy to offer a full money back guarantee for everything we sell.
You can only find out how good something is by trying it, and because of our 100% money back guarantee there's literally no risk to do so!
So, there's no reason not to click the Add to Cart button, is there?
See full terms...
Earn $8 on a $10 Purchase, and $16 on a $20 Purchase
We pay 80% royalties on purchases of $7.99 or more, and 80% royalties minus a 50 cent flat fee on purchases between $0.99 and $7.98. You earn $8 on a $10 sale, and $16 on a $20 sale. So, if we sell 5000 non-refunded copies of your book for $20, you'll earn $80,000.
(Yes, some authors have already earned much more than that on Leanpub.)
In fact, authors have earnedover $14 millionwriting, publishing and selling on Leanpub.
Learn more about writing on Leanpub
Free Updates. DRM Free.
If you buy a Leanpub book, you get free updates for as long as the author updates the book! Many authors use Leanpub to publish their books in-progress, while they are writing them. All readers get free updates, regardless of when they bought the book or how much they paid (including free).
Most Leanpub books are available in PDF (for computers) and EPUB (for phones, tablets and Kindle). The formats that a book includes are shown at the top right corner of this page.
Finally, Leanpub books don't have any DRM copy-protection nonsense, so you can easily read them on any supported device.
Learn more about Leanpub's ebook formats and where to read them