Brady, Edwin Type-driven Development with Idris (1617293024)
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.