Programming in Haskell

Programming in Haskell Author Graham Hutton
ISBN-10 9781316626221
Year 2016-08-31
Pages 320
Language en
Publisher Cambridge University Press

Haskell is a purely functional language that allows programmers to rapidly develop clear, concise, and correct software. The language has grown in popularity in recent years, both in teaching and in industry. This book is based on the author's experience of teaching Haskell for more than twenty years. All concepts are explained from first principles and no programming experience is required, making this book accessible to a broad spectrum of readers. While Part I focuses on basic concepts, Part II introduces the reader to more advanced topics. This new edition has been extensively updated and expanded to include recent and more advanced features of Haskell, new examples and exercises, selected solutions, and freely downloadable lecture slides and example code. The presentation is clean and simple, while also being fully compliant with the latest version of the language, including recent changes concerning applicative, monadic, foldable, and traversable types.

Parallel and Concurrent Programming in Haskell

Parallel and Concurrent Programming in Haskell Author Simon Marlow
ISBN-10 9781449335922
Year 2013-07-12
Pages 322
Language en
Publisher "O'Reilly Media, Inc."

If you have a working knowledge of Haskell, this hands-on book shows you how to use the language’s many APIs and frameworks for writing both parallel and concurrent programs. You’ll learn how parallelism exploits multicore processors to speed up computation-heavy programs, and how concurrency enables you to write programs with threads for multiple interactions. Author Simon Marlow walks you through the process with lots of code examples that you can run, experiment with, and extend. Divided into separate sections on Parallel and Concurrent Haskell, this book also includes exercises to help you become familiar with the concepts presented: Express parallelism in Haskell with the Eval monad and Evaluation Strategies Parallelize ordinary Haskell code with the Par monad Build parallel array-based computations, using the Repa library Use the Accelerate library to run computations directly on the GPU Work with basic interfaces for writing concurrent code Build trees of threads for larger and more complex programs Learn how to build high-speed concurrent network servers Write distributed programs that run on multiple machines in a network

Real World Haskell

Real World Haskell Author Bryan O'Sullivan
ISBN-10 0596554303
Year 2008-11-15
Pages 714
Language en
Publisher "O'Reilly Media, Inc."

This easy-to-use, fast-moving tutorial introduces you to functional programming with Haskell. You'll learn how to use Haskell in a variety of practical ways, from short scripts to large and demanding applications. Real World Haskell takes you through the basics of functional programming at a brisk pace, and then helps you increase your understanding of Haskell in real-world issues like I/O, performance, dealing with data, concurrency, and more as you move through each chapter.

Haskell Design Patterns

Haskell Design Patterns Author Ryan Lemmer
ISBN-10 9781783988730
Year 2015-11-06
Pages 166
Language en
Publisher Packt Publishing Ltd

Take your Haskell and functional programming skills to the next level by exploring new idioms and design patterns About This Book Explore Haskell on a higher level through idioms and patterns Get an in-depth look into the three strongholds of Haskell: higher-order functions, the Type system, and Lazy evaluation Expand your understanding of Haskell and functional programming, one line of executable code at a time Who This Book Is For If you're a Haskell programmer with a firm grasp of the basics and ready to move more deeply into modern idiomatic Haskell programming, then this book is for you. What You Will Learn Understand the relationship between the “Gang of Four” OOP Design Patterns and Haskell Try out three ways of Streaming I/O: imperative, Lazy, and Iteratee based Explore the pervasive pattern of Composition: from function composition through to high-level composition with Lenses Synthesize Functor, Applicative, Arrow and Monad in a single conceptual framework Follow the grand arc of Fold and Map on lists all the way to their culmination in Lenses and Generic Programming Get a taste of Type-level programming in Haskell and how this relates to dependently-typed programming Retrace the evolution, one key language extension at a time, of the Haskell Type and Kind systems Place the elements of modern Haskell in a historical framework In Detail Design patterns and idioms can widen our perspective by showing us where to look, what to look at, and ultimately how to see what we are looking at. At their best, patterns are a shorthand method of communicating better ways to code (writing less, more maintainable, and more efficient code). This book starts with Haskell 98 and through the lens of patterns and idioms investigates the key advances and programming styles that together make "modern Haskell". Your journey begins with the three pillars of Haskell. Then you'll experience the problem with Lazy I/O, together with a solution. You'll also trace the hierarchy formed by Functor, Applicative, Arrow, and Monad. Next you'll explore how Fold and Map are generalized by Foldable and Traversable, which in turn is unified in a broader context by functional Lenses. You'll delve more deeply into the Type system, which will prepare you for an overview of Generic programming. In conclusion you go to the edge of Haskell by investigating the Kind system and how this relates to Dependently-typed programming. Style and approach Using short pieces of executable code, this guide gradually explores the broad pattern landscape of modern Haskell. Ideas are presented in their historical context and arrived at through intuitive derivations, always with a focus on the problems they solve.

The Haskell Road to Logic Maths and Programming

The Haskell Road to Logic  Maths and Programming Author Kees Doets
ISBN-10 UCSD:31822030585525
Year 2004-01
Pages 426
Language en
Publisher Kings College Publications

Long ago, when Alexander the Great asked the mathematician Menaechmus for a crash course in geometry, he got the famous reply There is no royal road to mathematics. Where there was no shortcut for Alexander, there is no shortcut for us. Still, the fact that we have access to computers and mature programming languages means that there are avenues for us that were denied to the kings and emperors of yore. The purpose of this book is to teach logic and mathematical reasoning in practice, and to connect logical reasoning with computer programming in Haskell. Haskell emerged in the 1990s as a standard for lazy functional programming, a programming style where arguments are evaluated only when the value is actually needed. Haskell is a marvelous demonstration tool for logic and maths because its functional character allows implementations to remain very close to the concepts that get implemented, while the laziness permits smooth handling of infinite data structures. This book does not assume the reader to have previous experience with either programming or construction of formal proofs, but acquaintance with mathematical notation, at the level of secondary school mathematics is presumed. Everything one needs to know about mathematical reasoning or programming is explained as we go along. After proper digestion of the material in this book, the reader will be able to write interesting programs, reason about their correctness, and document them in a clear fashion. The reader will also have learned how to set up mathematical proofs in a structured way, and how to read and digest mathematical proofs written by others. This is the updated, expanded, and corrected second edition of a much-acclaimed textbook. Praise for the first edition: Doets and van Eijck s The Haskell Road to Logic, Maths and Programming is an astonishingly extensive and accessible textbook on logic, maths, and Haskell. Ralf Laemmel, Professor of Computer Science, University of Koblenz-Landau


Haskell Author Simon Thompson
ISBN-10 9781292127576
Year 2015-09-25
Pages 608
Language en
Publisher Pearson Higher Ed

Introducing functional programming in the Haskell language, this book is written for students and programmers with little or no experience. It emphasises the process of crafting programmes, problem solving and avoiding common programming pitfalls. Covering basic functional programming, through abstraction to larger scale programming, students are lead step by step through the basics, before being introduced to more advanced topics. This edition includes new material on testing and domain-specific languages and a variety of new examples and case studies, including simple games. Existing material has been expanded and re-ordered, so that some concepts – such as simple data types and input/output – are presented at an earlier stage.

The Haskell School of Expression

The Haskell School of Expression Author Paul Hudak
ISBN-10 0521644089
Year 2000-02-28
Pages 363
Language en
Publisher Cambridge University Press

This book teaches functional programming using Haskell and examples drawn from multimedia applications.

Learn You a Haskell for Great Good

Learn You a Haskell for Great Good Author Miran Lipovaca
ISBN-10 9781593272951
Year 2011-04-15
Pages 400
Language en
Publisher No Starch Press

It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible. You'll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you've got the basics down, the real black belt master-class begins: you'll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you've only read about in storybooks. As you work your way through the author's imaginative (and occasionally insane) examples, you'll learn to: –Laugh in the face of side effects as you wield purely functional programming techniques –Use the magic of Haskell's "laziness" to play with infinite sets of data –Organize your programs by creating your own types, type classes, and modules –Use Haskell's elegant input/output system to share the genius of your programs with the outside world Short of eating the author's brain, you will not find a better way to learn this powerful language than reading Learn You a Haskell for Great Good!

Haskell Programming from First Principles

Haskell Programming from First Principles Author Christopher Allen
ISBN-10 194538803X
Year 2016-07-01
Language en

Haskell Programming makes Haskell as clear, painless, and practical as it can be, whether you're a beginner or an experienced hacker. Learning Haskell from the ground up is easier and works better. With our exercise-driven approach, you'll build on previous chapters such that by the time you reach the notorious Monad, it'll seem trivial.

Learn Haskell

Learn Haskell Author Will Kurt
ISBN-10 1617293768
Year 2017-03-03
Pages 325
Language en
Publisher Manning Publications

Unlike any other programming language, Haskell is purely functional with a strong type system and lazy evaluation. It is arguable the most interesting language but also has the reputation of being one of the most challenging to learn. Learning Haskell doesn't have to be difficult, and this book can help! Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications. Learn Haskell teaches readers the Haskell language and functional programming concepts while they hack on interesting problems that are challenging but never frustrating. This example-filled tutorial will take users from the basics to tackling the tough topics. There are lots of crystal-clear illustrations, hands-on exercises, and open-ended tasks that encourage readers to explore Haskell on their own.

Haskell High Performance Programming

Haskell High Performance Programming Author Samuli Thomasson
ISBN-10 9781786466914
Year 2016-09-26
Pages 408
Language en
Publisher Packt Publishing Ltd

Boost the performance of your Haskell applications using optimization, concurrency, and parallel programming About This Book Explore the benefits of lazy evaluation, compiler features, and tools and libraries designed for high performance Write fast programs at extremely high levels of abstraction Work through practical examples that will help you address the challenges of writing efficient code Who This Book Is For To get the most out of this book, you need to have a working knowledge of reading and writing basic Haskell. No knowledge of performance, optimization, or concurrency is required. What You Will Learn Program idiomatic Haskell that's also surprisingly efficient Improve performance of your code with data parallelism, inlining, and strictness annotations Profile your programs to identify space leaks and missed opportunities for optimization Find out how to choose the most efficient data and control structures Optimize the Glasgow Haskell Compiler and runtime system for specific programs See how to smoothly drop to lower abstractions wherever necessary Execute programming for the GPU with Accelerate Implement programming to easily scale to the cloud with Cloud Haskell In Detail Haskell, with its power to optimize the code and its high performance, is a natural candidate for high performance programming. It is especially well suited to stacking abstractions high with a relatively low performance cost. This book addresses the challenges of writing efficient code with lazy evaluation and techniques often used to optimize the performance of Haskell programs. We open with an in-depth look at the evaluation of Haskell expressions and discuss optimization and benchmarking. You will learn to use parallelism and we'll explore the concept of streaming. We'll demonstrate the benefits of running multithreaded and concurrent applications. Next we'll guide you through various profiling tools that will help you identify performance issues in your program. We'll end our journey by looking at GPGPU, Cloud and Functional Reactive Programming in Haskell. At the very end there is a catalogue of robust library recommendations with code samples. By the end of the book, you will be able to boost the performance of any app and prepare it to stand up to real-world punishment. Style and approach This easy-to-follow guide teaches new practices and techniques to optimize your code, and then moves towards more advanced ways to effectively write efficient Haskell code. Small and simple practical examples will help you test the concepts yourself, and you will be able to easily adapt them for any application.

Introduction to Functional Programming Systems Using Haskell

Introduction to Functional Programming Systems Using Haskell Author Antony J. T. Davie
ISBN-10 0521277248
Year 1992-06-18
Pages 290
Language en
Publisher Cambridge University Press

Here is an introduction to functional programming and its associated systems. A unique feature is its use of the language Haskell for teaching both the rudiments and the finer points of the functional technique. Haskell is a new, internationally agreed and accepted functional language that is designed for teaching, research and applications, that has a complete formal description, that is freely available, and that is based on ideas that have a wide consensus. Thus it encapsulates some of the main thrusts of functional programming itself, which is a style of programming designed to confront the software crisis directly. Programs written in functional languages can be built up from smaller parts, and they can also be proved correct, important when software has to be reliable. Moreover, a certain amount of parallelism can be extracted from functional languages automatically. This book serves as an introduction both to functional programming and Haskell, and will be most useful to students, teachers and researchers in either of these areas. An especially valuable feature are the chapters on programming and implementation, along with a large number of exercises.

Thinking Functionally with Haskell

Thinking Functionally with Haskell Author Richard Bird
ISBN-10 9781107087200
Year 2014-10-09
Pages 350
Language en
Publisher Cambridge University Press

Introduces fundamental techniques for reasoning mathematically about functional programs. Ideal for a first- or second-year undergraduate course.

Functional Programming in C

Functional Programming in C Author Oliver Sturm
ISBN-10 9780470971109
Year 2011-03-21
Pages 288
Language en
Publisher John Wiley & Sons

Take advantage of the growing trend in functional programming. C# is the number-one language used by .NET developers and one of the most popular programming languages in the world. It has many built-in functional programming features, but most are complex and little understood. With the shift to functional programming increasing at a rapid pace, you need to know how to leverage your existing skills to take advantage of this trend. Functional Programming in C# leads you along a path that begins with the historic value of functional ideas. Inside, C# MVP and functional programming expert Oliver Sturm explains the details of relevant language features in C# and describes theory and practice of using functional techniques in C#, including currying, partial application, composition, memoization, and monads. Next, he provides practical and versatile examples, which combine approaches to solve problems in several different areas, including complex scenarios like concurrency and high-performance calculation frameworks as well as simpler use cases like Web Services and business logic implementation. Shows how C# developers can leverage their existing skills to take advantage of functional programming Uses very little math theory and instead focuses on providing solutions to real development problems with functional programming methods, unlike traditional functional programming titles Includes examples ranging from simple cases to more complex scenarios Let Functional Programming in C# show you how to get in front of the shift toward functional programming.