## Discrete Mathematics Using a ComputerDiscrete Mathematics Using a Computer offers a new, "hands-on" approach to teaching Discrete Mathematics. Using software that is freely available on Mac, PC and Unix platforms, the functional language Haskell allows students to experiment with mathematical notations and concepts -- a practical approach that provides students with instant feedback and allows lecturers to monitor progress easily. This second edition of the successful textbook contains significant additional material on the applications of formal methods to practical programming problems. There are more examples of induction proofs on small programs, as well as a new chapter showing how a mathematical approach can be used to motivate AVL trees, an important and complex data structure. Designed for 1st and 2nd year undergraduate students, the book is also well suited for self-study. No prior knowledge of functional programming is required; everything the student needs is either provided or can be picked up easily as they go along. Key features include: Numerous exercises and examples A web page with software tools and additional practice problems, solutions, and explanations, as well as course slides Suggestions for further reading Complete with an accompanying instructor's guide, available via the web, this volume is intended as the primary teaching text for Discrete Mathematics courses, but will also provide useful reading for Conversion Masters and Formal Methods courses. Visit the book’s Web page at: http://www.dcs.gla.ac.uk/~jtod/discrete-mathematics/ |

### What people are saying - Write a review

User Review - Flag as inappropriate

An exellent book to learn Mathematics and programming at the same time! Highly recommended. And it is about Haskell :)

### Contents

Introduction to Haskell | 3 |

Equational Reasoning | 37 |

Recursion | 47 |

Copyright | |

12 other sections not shown

### Common terms and phrases

adder algebra algorithm and2 application argument balanced bijective binary relation BinLeaf BinNode BinTree Bool Boolean calculate Cel x a xL Cel y b circuit closure codomain computer science concat contains data item dataElems defined definition diagram Digraph discrete mathematics domain elements equational reasoning evaluate example Exercise expression False False True False True True Figure foldr formal formula functional programming graph Haskell height implication inference rules infinite injective function inorder t2 input Integer left subtree length list comprehension natural deduction natural numbers node notation operator ordered Cel ordered pairs P A Q predicate logic programming languages proof properties propositional logic prove recursion reflexive result right subtree says search tree string subset Succ surjective tree induction True False False True True False True True True truth table variables WFFs Write a function x a If rt x a xL xR x:xs