Author: Richard Bird
Publisher: Prentice Hall
Release Date: 1998
After the success of the first edition, Introduction to Functional Programming using Haskell has been thoroughly updated and revised to provide a complete grounding in the principles and techniques of programming with functions. The second edition uses the popular language Haskell to express functional programs. There are new chapters on program optimisation, abstract datatypes in a functional setting, and programming in a monadic style. There are complete new case studies, and many new exercises. As in the first edition, there is an emphasis on the fundamental techniques for reasoning about functional programs, and for deriving them systematically from their specifications. The book is self-contained, assuming no prior knowledge of programming and is suitable as an introductory undergraduate text for first- or second-year students.
This book constitutes the refereed proceedings of the 14th International Symposium on Practical Aspects of Declarative Languages, PADL 2012, held in Philadelphia, PA, USA, in January 2012, co-located with POPL 2012, the 39th Symposium on Principles of Programming Languages. The 38 revised technical papers presented together with 3 application papers were carefully reviewed and selected from 52 submissions. The volume features original work emphasizing new ideas and approaches pertaining to applications and implementation techniques of declarative languages and addresses topics such as innovative applications of declarative languages, declarative domain-specific languages and applications, practical applications of theoretical results, new language developments and their impact on applications, evaluation of implementation techniques on practical applications, novel implementation techniques relevant to applications, novel uses of declarative languages in the classroom, and practical experiences.
Several aspects of informatics curricula and teaching methods at the university level are reported in this volume, including: *Challenges in defining an international curriculum; *The diversity in informatics curricula; *Computing programs for scientists and engineers; *Patterns of curriculum design; *Student interaction; *Teaching of programming; *Peer review in education. This book contains a selection of the papers presented at the Working Conference on Informatics Curricula, Teaching Methods and Best Practice (ICTEM 2002), which was sponsored by the International Federation for Information Processing (IFIP) Working Group 3.2, and held in Florianópolis, Brazil in July 2002. The working groups were organized in three parallel tracks. Working Group 1 discussed the "Directions and Challenges in Informatics Education". The focus of Working Group 2 was "Teaching Programming and Problem Solving". Working Group 3 discussed "Computing: The Shape of an Evolving Discipline."
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
Author: Richard E. Pattis
Release Date: 1981
SUMMARY: Introduces programming concepts, plus an overview of PASCAL. It is designed to be covered at the beginning of an introductory programming course, prior to the study of a computer programming language.
This tutorial book presents nine carefully revised lectures given at the 5th International School on Functional Programming, AFP 2004, in Tartu, Estonia in August 2004. The book presents the following nine, carefully cross-reviewed chapters, written by leading authorities in the field: Typing Haskell with an Attribute Grammar, Programming with Arrows, Epigram: Practical Programming with Dependent Types, Combining Datatypes and Effects, GEC: a toolkit for Generic Rapid Prototyping, A Functional Shell that Operates on Typed and Compiled Applications, Declarative Debugging with Buddha, Server-Side Web Programming in WASH, and Refactoring Functional Programs.