Type-driven Development with Idris

Type-driven Development with Idris

by Edwin Brady

480 pages· 2017· ISBN 9781617293023
About

Summary

Type-Driven Development with Idris, written by the creator of Idris, teaches you how to improve the performance and accuracy of your programs by taking advantage of a state-of-the-art type system. This book teaches you with Idris, a language designed to support type-driven development.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

About the Technology

Stop fighting type errors! Type-driven development is an approach to coding that embraces types as the foundation of your code - essentially as built-in documentation your compiler can use to check data relationships and other assumptions. With this approach, you can define specifications early in development and write code that's easy to maintain, test, and extend. Idris is a Haskell-like language with first-class, dependent types that's perfect for learning type-driven programming techniques you can apply in any codebase.

About the Book

Type-Driven Development with Idris teaches you how to improve the performance and accuracy of your code by taking advantage of a state-of-the-art type system. In this book, you'll learn type-driven development of real-world software, as well as how to handle side effects, interaction, state, and concurrency. By the end, you'll be able to develop robust and verified software in Idris and apply type-driven development methods to other languages.

What's Inside

  • Understanding dependent types
  • Types as first-class language constructs
  • Types as a guide to program construction
  • Expressing relationships between data

About the Reader

Written for programmers with knowledge of functional programming concepts.

About the Author

Edwin Brady leads the design and implementation of the Idris language.

Table of Contents

    PART 1 - INTRODUCTION

  1. Overview
  2. Getting started with Idris

    PART 2 - CORE IDRIS

  3. Interactive development with types
  4. User-defined data types
  5. Interactive programs: input and output processing
  6. Programming with first-class types
  7. Interfaces: using constrained generic types
  8. Equality: expressing relationships between data
  9. Predicates: expressing assumptions and contracts in types
  10. Views: extending pattern matching
  11. PART 3 - IDRIS AND THE REAL WORLD

  12. Streams and processes: working with infinite data
  13. Writing programs with state
  14. State machines: verifying protocols in types
  15. Dependent state machines: handling feedback and errors
  16. Type-safe concurrent programming

Discuss Type-driven Development with Idris with other readers

Join or start a book club for Type-driven Development with Idris on Readfeed. Live chat, shared reading progress, and AI discussion questions — free to get started.

Frequently asked questions

How do I join a book club for Type-driven Development with Idris?

Sign up free on Readfeed, then browse public clubs or start your own club with Type-driven Development with Idris as the current read. Invite friends with a share link and discuss together with live chat and AI discussion questions.

Can I discuss Type-driven Development with Idris with other readers online?

Yes. Readfeed book clubs let you chat live, share progress, and join discussions about Type-driven Development with Idris with readers worldwide — whether your club is virtual, in-person, or hybrid.

Is Readfeed free?

Yes. Creating an account and joining book clubs is free. Sign up to find readers who love the same books and start discussing today.