About the Book
Note: the second edition was released August 6, 2019. 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:
- 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
About the Author
Mark Watson is a consultant specializing in deep learning, machine learning, knowledge graphs, and general artificial intelligence software development. He uses Common Lisp, Clojure, Python, Java, Haskell, and Ruby for development.
Mark's consulting customer list includes: Google, Capital One, Olive AI, CompassLabs, Disney, Sitescout.com, Embed.ly, and Webmind Corporation.
web site: https://markwatson.com/