Exploring Haskell
Core concepts
With chapters selected by Marcello Seri
  • March 2019
  • ISBN 9781617296772
  • 101 pages
Exploring Haskell
Core concepts
With chapters selected by Marcello Seri
Software sits at the core of every financial transaction, manufacturing process, and mobile phone call. We depend on applications like these to run correctly and efficiently, be easy to scale and modify, and last for the long haul. Industry giants including Facebook, IBM, Twitter, and Bank of America trust Haskell, a powerful functional programming language, for mission-critical software. Haskell blends a rigorous mathematical precision with the tools and approachability of a modern programming language. With its combination of lazy evaluation, highly expressive static type system, and zero side effects, Haskell invites you to approach programming from a fresh perspective!

Exploring Haskell: Core Concepts is a collection of hand-picked chapters from two Manning books. This excellent starter guide aims to tame Haskell's reputed steep learning curve by spotlighting how easy it is to get started with this powerful language. In it, you’ll explore core concepts like type classes, derivation and polymorphism, composability with semigroups and monoids, lazy evaluation of I/O on the command line, and more. Finally, you’ll take a close look at how to design a standalone, multi-module Haskell program incorporating external packages. Compiled by computer science expert Dr. Marcello Seri, Exploring Haskell: Core Concepts will help you get started with Haskell and decide if a deeper exploration of Haskell is for you.
Table of Contents detailed table of contents

introduction

Getting started with Haskell

Lesson 1: Getting started with Haskell

1.1 Welcome to Haskell

1.1.1 The Haskell Platform

1.1.2 Text editors

1.2 The Glasgow Haskell Compiler

1.3 Interacting with Haskell—​GHCi

1.4 Writing and working with Haskell code

Summary

Type classes

Lesson 13. Type classes

13.1 Further exploring types

13.2 Type classes

13.3 The benefits of type classes

13.4 Defining a type class

13.5 Common type classes

13.6 The Ord and Eq type classes

13.6.1 Bounded

13.6.2 Show

13.7 Deriving type classes

Using type classes

Lesson 14: Using type classes

14.1 A type in need of classes

14.2 Implementing Show

14.3 Type classes and polymorphism

14.4 Default implementation and minimum complete definitions

14.5 Implementing Ord

14.6 To derive or not to derive?

14.7 Type classes for more-complex types

14.8 Type class roadmap

Summary

Design by composition—​Semigroups and Monoids

Lesson 17: Design by composition—​Semigroups and Monoids

17.1 Intro to composability—​combining functions

17.2 Combining like types: Semigroups

17.2.1 The Color Semigroup

17.2.2 Making Color associative and using guards

17.3 Composing with identity: Monoids

17.3.1 mconcat: Combining multiple Monoids at once

17.3.2 Monoid laws

17.3.3 Practical Monoids—​building probability tables

Summary

Interacting with the command line and lazy I/O

Lesson 22: Interacting with the command line and lazy I/O

32.1 Interacting with the command line the nonlazy way

32.2 Interacting with lazy I/O

32.2.1 Thinking of your problem as a lazy list

Summary

Processing stock quote data: An example

Chapter 3: Processing stock quote data: An example

3.1 Setting the scene

3.2 Exploring design space

3.2.2 Computing with fixed precision

3.2.3 Parsing data

3.2.4 Formatting texts

3.2.5 Other tasks and the corresponding packages

3.2.6 External packages in the project

3.3 Implementing stockquotes project

3.3.1 Describing data

3.3.2 Computing statistics

3.3.3 Formatting statistical report

3.3.4 Drawing charts

3.3.5 Designing user interface

3.3.6 Connecting the parts

3.4 Extending project with reports in HTML

3.4.1 Changes in user interface

3.4.2 Generating reports in HTML format with blaze-html

3.4.3 Changes in the Main module

Summary

What's inside

  • Getting started with Haskell from Get Programming with Haskell by Will Kurt
  • Using type classes from Get Programming with Haskell by Will Kurt
  • Design by composition—Semigroups and Monoids from Get Programming with Haskell by Will Kurt
  • Interacting with the command line and lazy I/O from Get Programming with Haskell by Will Kurt
  • Processing stock quote data: An example from Haskell in Depth by Vitaly Bragilevsky

About the author

Marcello Seri is an assistant professor at the Bernoulli Institute for Mathematics, Computer Science, and Artificial Intelligence, University of Groningen. Previously, he was a senior software engineer at Citrix Systems in Cambridge. He spent several years as a scientific research assistant and earned his PhD in Mathematics in 2012 from the University of Bologna and the University of Erlangen.

eBook
...
$0.00 PDF only

placing your order...

Don't refresh or navigate away from the page.

FREE domestic shipping on three or more pBooks