Soar with Haskell The Ultimate Beginners' Guide to Mastering Functional Programming from the Ground Up

The book begins by helping you get to grips with basic functions and algebraic datatypes, and gradually adds abstraction mechanisms and other powerful language features. Next, you'll explore recursion, formulate higher-order functions as reusable templates, and get the job done with laziness. A...

Full description

Bibliographic Details
Main Author: Schrijvers, Tom
Format: eBook
Language:English
Published: Birmingham Packt Publishing, Limited 2023
Edition:1st edition
Subjects:
Online Access:
Collection: O'Reilly - Collection details see MPG.ReNa
LEADER 07055nmm a2200385 u 4500
001 EB002192883
003 EBX01000000000000001330348
005 00000000000000.0
007 cr|||||||||||||||||||||
008 240201 ||| eng
020 |a 9781805122562 
050 4 |a QA76.73.H37 
100 1 |a Schrijvers, Tom 
245 0 0 |a Soar with Haskell  |h [electronic resource]  |b The Ultimate Beginners' Guide to Mastering Functional Programming from the Ground Up  |c Tom Schrijvers 
250 |a 1st edition 
260 |a Birmingham  |b Packt Publishing, Limited  |c 2023 
300 |a 418 p. 
505 0 |a scParametric polymorphism -- The identity function -- The constant function -- Parametric ADTs -- Tuples -- Type synonyms -- Maybe -- Either -- The unit type -- Summary -- Questions -- Answers -- Chapter 3: Recursion -- Standard libraries -- Lists -- List syntax -- List syntax desugared -- Predefined list functions -- List comprehensions -- Strings revisited -- Custom list processing -- Recursive datatypes -- Arithmetic expressions -- Parametric recursive datatypes -- Structural recursion -- Structural recursion on lists -- Structural recursion on other algebraic datatypes 
505 0 |a Cover -- Title page -- Copyright and credits -- Dedication -- Contributors -- Table of contents -- Preface -- Part 1: Basic Functional Programming -- Chapter 1: Functions -- Technical requirements -- What is FP? -- Programming with functions -- Brief history of FP -- Haskell -- Other contemporary FP languages -- Prominent application areas -- Writing basic functions -- Our first function -- A two-parameter function -- Custom operators -- Programming with primitive types -- Int and Integer -- Float and Double -- Booleans -- Char and String -- Converting between primitive types 
505 0 |a Variants on structural recursion -- Primitive recursion -- Recursion on integers -- Additional parameters -- Varying parameters and the worker/wrapper structure -- Accumulation -- Recursion on nested datatypes -- Mutual recursion -- Simultaneous recursion on multiple structures -- Combining variations -- Non-structural recursion -- Non-termination -- Unbounded search -- Summary -- Questions -- Answers -- Chapter 4: Higher-Order Functions -- Abstracting over functions -- Dropping a prefix -- Sorting in ascending and descending order -- An abstraction for structural recursion -- Folding lists 
505 0 |a Putting the type checker to work -- Checking function calls -- Checking function definitions -- Disambiguating overloaded functions -- Inferring types -- Combining functions -- Calling functions from within functions -- Naming intermediate results -- Local function definitions -- Summary -- Questions -- Further reading -- Answers -- Chapter 2: Algebraic Datatypes -- Enumerations -- A game of rock-paper-scissors -- Don't-care patterns -- Booleans revisited -- Records -- People -- Named fields -- Nested records -- Full-blown algebraic datatypes -- Shapes -- Cards -- Showing cards 
505 0 |a Folds for other algebraic datatypes -- Variations on structural recursion -- Common HOFs -- Taking instead of dropping -- Mapping -- Filtering -- Any and all -- Folding from the left -- Scanning left and right -- Writing compact code with HOF -- Standard deviation -- Odds and evens -- All you can buy -- Summary -- Questions -- Answers -- Part 2: Haskell-Specific Features -- Chapter 5: First-Class Functions -- Anonymous functions -- Anonymous function syntax -- Anonymous function use -- Multi-parameter anonymous functions -- Pattern matching without equations -- Currying and partial application 
653 |a Haskell (Langage de programmation) 
653 |a Functional programming (Computer science) / http://id.loc.gov/authorities/subjects/sh87007844 
653 |a Programmation fonctionnelle 
653 |a Haskell (Computer program language) / http://id.loc.gov/authorities/subjects/sh93003496 
041 0 7 |a eng  |2 ISO 639-2 
989 |b OREILLY  |a O'Reilly 
500 |a Description based upon print version of record. - One parameter is enough 
856 4 0 |u https://learning.oreilly.com/library/view/~/9781805128458/?ar  |x Verlag  |3 Volltext 
082 0 |a 500 
082 0 |a 005.13/3 
520 |a The book begins by helping you get to grips with basic functions and algebraic datatypes, and gradually adds abstraction mechanisms and other powerful language features. Next, you'll explore recursion, formulate higher-order functions as reusable templates, and get the job done with laziness. As you advance, you'll learn how Haskell reconciliates its purity with the practical need for side effects and comes out stronger with a rich hierarchy of abstractions, such as functors, applicative functors, and monads. Finally, you'll understand how all these elements are combined in the design and implementation of custom domain-specific languages for tackling practical problems such as parsing, as well as the revolutionary functional technique of property-based testing. By the end of this book, you'll have mastered the key concepts of functional programming and be able to develop idiomatic Haskell solutions.  
520 |a Build powerful software solutions and develop proficiency in Haskell, from understanding the foundational principles through to mastering advanced functional programming concepts Key Features Learn from an expert lecturer and researcher who knows all the ins and outs of Haskell Develop a clear understanding of Haskell, from the basics through to advanced concepts Get to grips with all the key functional programming techniques Purchase of the print or Kindle book includes a free PDF eBook Book Description With software systems reaching new levels of complexity and programmers aiming for the highest productivity levels, software developers and language designers are turning toward functional programming because of its powerful and mature abstraction mechanisms. This book will help you tap into this approach with Haskell, the programming language that has been leading the way in pure functional programming for over three decades.  
520 |a What you will learn Write pure functions in all their forms - that is basic, recursive, and higher-order functions Model your data using algebraic datatypes Master Haskell's powerful type-class mechanism for ad hoc overloading Find out how Haskell's laziness gets the job done Reconcile Haskell's functional purity with side effects Familiarize yourself with the functor, applicative functor, monad hierarchy Discover how to solve problems with domain-specific languages Find more bugs with Haskell's property-based testing approach Who this book is for If you are a programmer looking to gain knowledge of Haskell who's never been properly introduced to functional programming, this book is for you. Basic experience with programming in a non-functional language is a prerequisite. This book also serves as an excellent guide for programmers with limited exposure to Haskell who want to deepen their understanding and foray further into the language