Description
DESCRIPTION
Types are often seen as a tool for checking errors, with the
programmer writing a complete program first and using the type
checker to detect errors. And while tests are used to show presence of
errors, they can only find errors that you explicitly test for. In typedriven
development, types become your tools for constructing
programs and, used appropriately, can show the absence of errors. And
you can express precise relationships between data, your assumptions
are explicit and checkable, and you can precisely state and verify
properties. Type-driven development lets users write extensible code,
create simple specifications very early in development, and easily
create mock implementation for testing.
Type-Driven Development with Idris, written by the creator of Idris, teaches programmers how to improve the performance and accuracy of
programs by taking advantage of a state-of-the-art type system. This
book teaches readers using Idris, a language designed from the very
beginning to support type-driven development. Readers learn how to
manipulate types just like any other construct (numbers, strings, lists,
etc.). This book teaches how to use type-driven development to build
real-world software, as well as how to handle side-effects, state and
concurrency, and interoperating with existing systems. By the end of
this book, readers will be able to develop robust and verified software
in Idris and apply type-driven development methods to programming
in other languages.
KEY FEATURES
• Written by the creator of Idris • Improve performance and accuracy of programs • Teaches Idris, a new type-driven development language • Hands-on code examples • Build real-world software AUDIENCE
Written for programmers with knowledge of basic functional programming
concepts.
ABOUT THE TECHNOLOGY
Type-driven development lets you write extensible code, create simple
specifications very early in development, and easily create mock
implementation for testing. In type-driven development, types become your
tools for constructing programs and, used appropriately, can show the
absence of errors.