2 options
Haskell cookbook : build functional applications using Monads, Applicatives, and Functors / Yogesh Sajanikar.
- Format:
- Book
- Author/Creator:
- Sajanikar, Yogesh, author.
- Language:
- English
- Subjects (All):
- Haskell (Computer program language).
- Application software--Development.
- Application software.
- Physical Description:
- 1 online resource (1 volume) : illustrations
- Edition:
- 1st edition
- Place of Publication:
- Birmingham, [England] ; Mumbai, [India] : Packt, 2017.
- System Details:
- text file
- Biography/History:
- Sajanikar Yogesh: Yogesh Sajanikar has received his bachelor's degree in Mechanical Engineering from Shivaji University, India, along with a gold medal and a master's degree in Production Engineering from the Indian Institute of Technology, Bombay, India. Yogesh has an experience of more than 20 years, and he has extensively worked with Product Lifecycle Management (PLM) and Computer Aided Design (CAD) software development firms, and architected solutions for domains such as Construction and Shipping Domain. Having hooked on to functional programming, he moved into the Finance domain and worked as an enterprise architect; he has also worked with Scala/F# and Haskell. Currently, he is working as a CTO for a startup. He has also started local Haskell meetups and has been an active participant in meetups and functional conferences. Yogesh believes in the open source movement, and believes in giving back to the open source community.
- Summary:
- Save time and build fast, functional, and concurrent application using Haskell About This Book Comprehensive guide for establishing a strong foundation in Haskell and developing pragmatic code Create a full fledged web application using Haskell Work with Lens, Haskell Extensions, and write code for concurrent and distributed applications Who This Book Is For This book is targeted at readers who wish to learn the Haskell language. If you are a beginner, Haskell Cookbook will get you started. If you are experienced, it will expand your knowledge base. A basic knowledge of programming will be helpful. What You Will Learn Use functional data structures and algorithms to solve problems Understand the intricacies of the type system Create a simple parser for integer expressions with additions Build high-performance web services with Haskell Master mechanisms for concurrency and parallelism in Haskell Perform parsing and handle scarce resources such as filesystem handles Organize your programs by creating your own types and type classes In Detail Haskell is a purely functional language that has the great ability to develop large and difficult, but easily maintainable software. Haskell Cookbook provides recipes that start by illustrating the principles of functional programming in Haskell, and then gradually build up your expertise in creating industrial-strength programs to accomplish any goal. The book covers topics such as Functors, Applicatives, Monads, and Transformers. You will learn various ways to handle state in your application and explore advanced topics such as Generalized Algebraic Data Types, higher kind types, existential types, and type families. The book will discuss the association of lenses with type classes such as Functor, Foldable, and Traversable to help you manage deep data structures. With the help of the wide selection of examples in this book, you will be able to upgrade your Haskell programming skills and develop scalable software idiomatically. Style and approach The book follows a recipe-based approach. Each recipe addresses specific problems and issues. The recipes provide discussions and insights to explain these problems. Downloading the example code for this book. You can download the example code files for all Packt books you have purchased from your account at http://www.PacktPub.com. If you purchased this book elsewhere, you can visit http://www.PacktPub.com/support and register to have the code file.
- Contents:
- Cover
- Copyright
- Credits
- About the Author
- About the Reviewer
- www.PacktPub.com
- Customer Feedback
- Table of Contents
- Preface
- Chapter 1: Foundations of Haskell
- Introduction
- Getting started with Haskell
- How to do it...
- How it works…
- Dissecting Hello World
- There's more…
- Working with data types
- How to&
- #160
- do it…
- How&
- it works...
- Working with pure functions and user-defined data types
- Getting ready
- to do it...
- How it works...
- Source formatting
- Working with list functions
- List creation
- Enumerated list
- Head and tail of a list
- Operations on a list
- Indexed access
- Checking whether an element is present
- Pattern matching on list
- List concatenation
- Strings are lists
- Chapter 2: Getting Functional
- Working with recursive functions
- do it...
- There's more...
- Reversing a list - Recursive worker function pattern
- Creating maps and filters
- Map&
- function
- Filter function
- Working with laziness and recursion
- Working with folds
- Sorting a list
- Implementing merge sort
- Implementing Eratosthenes Sieve
- Chapter 3: Defining Data.
- Introduction
- Defining a product type
- Defining a sum type
- Defining a binary tree and traversing it
- Defining data with functions
- Using Maybe
- Using Either
- Working with type classes
- Working with Monoid
- Chapter 4: Working with Functors, Applicatives, and Monads
- Working with Functors
- Binary tree as Functor
- Working with Applicatives
- Binary tree as Applicative
- Working with monad
- List as monad
- Working with IO monad
- Writing INI parser
- Errors and exception handling
- Chapter 5: More about Monads
- Writing a State Monad
- Computing a fibonacci number with State Monad
- Writing a State Monad transformer
- Working with the Reader monad transformer
- Working with the Writer monad transformer
- Combining monad transformers
- How it works.
- Chapter 6: Working with Common Containers and Strings
- Working with sets
- Shopping cart as a set
- Working with maps
- Log analysis with map
- Working with vector
- Working with text and bytestring
- Creating and testing a priority queue
- Working with Foldable and Traversable
- Chapter 7: Working with Relational and NoSQL Databases
- Working with Persistent
- Managing migrations
- Creating custom data types
- Using Esqueleto to do advanced SQL queries
- Using hedis to work with redis (key-value, list and hash)
- Getting ready...
- Using hashsets and sorted sets in redis to create a Trie
- Chapter 8: Working with HTML and Templates
- Using blaze to create an HTML template
- Using blaze to reverse engineer an HTML page
- Use blaze-html with Bootstrap to create HTML template
- How to do it...&
- Using heist as a template engine
- Working with splice in Heist
- Chapter 9: Working with Snap Framework
- Getting started with Snap
- Routing in Snap
- Serving static contents in Snap
- Form handling in Snap
- Creating and composing snaplets
- Session handling in Snap
- Authentication in Snap
- File upload with Snap
- Chapter 10: Working with Advanced Haskell
- Working with existentially quantified type
- Working with Rank-N type
- Working with type family
- Working with GADTs
- Chapter 11: Working with Lens and Prism
- Creating lenses
- Working with lenses
- Working with Traversal
- Working with Iso
- Working with Prism
- Working with predefined lenses
- Chapter 12: Concurrent and Distributed Programming in Haskell
- Working with IORef
- Working with MVar
- Working with STM
- Working with strategies
- Working with monad-par
- Working with Cloud Haskell
- Using Cloud Haskell to start master and slave nodes
- Using closure to communicate between nodes
- Index.
- Notes:
- Includes index.
- Description based on print version record.
- OCLC:
- 1007536519
The Penn Libraries is committed to describing library materials using current, accurate, and responsible language. If you discover outdated or inaccurate language, please fill out this feedback form to report it and suggest alternative language.