Linked e-resources
Details
Table of Contents
At a Glance; Contents; About the Authors; About the Technical Reviewer; Part I: Haskell Foundations. General Introductory Notions; Chapter 1: Introduction; What Is Haskell?; A Little Bit of Haskell History; The Cloud and Haskell; Book Structure; Summary; Chapter 2: Programming with Haskell; Functional vs. Object-Oriented Programming; Language Basics; Arithmetic; Pairs, Triples, and Much More; Lists; Source Code Files; Functions; if-else; Types; Simple vs. Polymorphic Types; Parametric Polymorphism; Ad hoc Polymorphism; Type Classes; Function Types; Data Types
Input/Output (IO) MechanismsModules; :load/:reload; :module; :import; Operators Used as Sections and Infix; Local Declarations; Partial Application; Pattern Matching; Guards; Instance Declarations; Rules for the Head; Rules for the Context; Rules for Instance Termination; Other Lists; Arrays; Immutable Arrays; Mutable Arrays; Finite Maps; Layout Principles and Rules; xmonad; wxHaskell; The Final Word on Lists; Advanced Types; Monads; Other Advanced Techniques; map, filter, takeWhile; Lambdas; Summary; Chapter 3: Parallelism and Concurrency with Haskell; Annotating the Code for Parallelism
Parallelism for DataflowConcurrent Servers for a Network; Threads for Parallel Programming; Threads and MVars; Distributed Programming; Socket Server; System.IO for Sockets; Concurrency; Communication Between Threads; The Final Code; Running the Server; Eval Monad for Parallelism; Summary; Chapter 4: Strategies Used in the Evaluation Process; Redexes and Lazy Evaluation; Parallel Strategies in Haskell; Scan Family; Skeletons; Summary; Chapter 5: Exceptions; Errors; Using the error Function; Maybe; Either; Exceptions; Lazy Evaluation and Exceptions; The handle Function; Input/Output Exceptions
The throw FunctionDynamic Exceptions; Summary; Chapter 6: Cancellation; Asynchronous Exceptions; Using Asynchronous Exceptions with mask; Extending the bracket Function; Writing Safe Channels Using Asynchronous Exceptions; timeout Variants; Catching Asynchronous Exceptions; mask and forkIO Operations; Summary; Chapter 7: Transactional Memory Case Studies; Transactions; Introducing Transactional Memory; Software Transactional Memory; Software Transactional Memory in Haskell; A Bank Account Example; Transactional Memory Version; Blocking and Choice; Summary
Chapter 8: Debugging Techniques Used in Big DataData Science; Big Data; Characteristics; Tools; Storage and Management; Cleaning; Data Mining; Languages; Haskell for Big Data; hspark; Hadron; Cloud Haskell; ZeroMQ; The Krapsh Library; The Developer's Perspective; The User's Perspective; Haskell vs. Data Science; Debugging Tehniques; Stack Trace; Printf and Friends; The Safe Library; Offline Analysis of Traces; Haskell Tracer HAT; Hoed: The Lightweight Haskell Tracer and Debugger; Dynamic Breakpoints in GHCi; Source-Located Errors; Other Tricks; Locating a Failure in a Library Function
Input/Output (IO) MechanismsModules; :load/:reload; :module; :import; Operators Used as Sections and Infix; Local Declarations; Partial Application; Pattern Matching; Guards; Instance Declarations; Rules for the Head; Rules for the Context; Rules for Instance Termination; Other Lists; Arrays; Immutable Arrays; Mutable Arrays; Finite Maps; Layout Principles and Rules; xmonad; wxHaskell; The Final Word on Lists; Advanced Types; Monads; Other Advanced Techniques; map, filter, takeWhile; Lambdas; Summary; Chapter 3: Parallelism and Concurrency with Haskell; Annotating the Code for Parallelism
Parallelism for DataflowConcurrent Servers for a Network; Threads for Parallel Programming; Threads and MVars; Distributed Programming; Socket Server; System.IO for Sockets; Concurrency; Communication Between Threads; The Final Code; Running the Server; Eval Monad for Parallelism; Summary; Chapter 4: Strategies Used in the Evaluation Process; Redexes and Lazy Evaluation; Parallel Strategies in Haskell; Scan Family; Skeletons; Summary; Chapter 5: Exceptions; Errors; Using the error Function; Maybe; Either; Exceptions; Lazy Evaluation and Exceptions; The handle Function; Input/Output Exceptions
The throw FunctionDynamic Exceptions; Summary; Chapter 6: Cancellation; Asynchronous Exceptions; Using Asynchronous Exceptions with mask; Extending the bracket Function; Writing Safe Channels Using Asynchronous Exceptions; timeout Variants; Catching Asynchronous Exceptions; mask and forkIO Operations; Summary; Chapter 7: Transactional Memory Case Studies; Transactions; Introducing Transactional Memory; Software Transactional Memory; Software Transactional Memory in Haskell; A Bank Account Example; Transactional Memory Version; Blocking and Choice; Summary
Chapter 8: Debugging Techniques Used in Big DataData Science; Big Data; Characteristics; Tools; Storage and Management; Cleaning; Data Mining; Languages; Haskell for Big Data; hspark; Hadron; Cloud Haskell; ZeroMQ; The Krapsh Library; The Developer's Perspective; The User's Perspective; Haskell vs. Data Science; Debugging Tehniques; Stack Trace; Printf and Friends; The Safe Library; Offline Analysis of Traces; Haskell Tracer HAT; Hoed: The Lightweight Haskell Tracer and Debugger; Dynamic Breakpoints in GHCi; Source-Located Errors; Other Tricks; Locating a Failure in a Library Function