## Discrete Mathematics Using a ComputerComputer science abounds with applications of discrete mathematics, yet s- dents of computer science often study discrete mathematics in the context of purely mathematical applications. They have to ?gure out for themselves how to apply the ideas of discrete mathematics to computing problems. It is not easy. Most students fail to experience broad success in this enterprise, which is not surprising, since many of the most important advances in science and engineeringhavebeen, precisely, applicationsofmathematicstospeci?cscience and engineering problems. Tobesure,mostdiscretemathtextbooksincorporatesomeaspectsapplying discrete math to computing, but it usually takes the form of asking students to write programs to compute the number of three-ball combinations there are in a set of ten balls or, at best, to implement a graph algorithm. Few texts ask students to use mathematical logic to analyze properties of digital circuits or computer programs or to apply the set theoretic model of functions to understand higher-order operations. A major aim of this text is to integrate, tightly, the study of discrete mathematics with the study of central problems of computer science. |

### 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