Introduction to Functional Programming Using HaskellAfter 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. |
From inside the book
Results 1-3 of 72
... proof follows a fairly automatic sequence of steps : in each case there is a substitution into both sides of the ... proof again : Proof . The proof is by induction on m . Case ( Zero ) . For the left - hand side we reason = x ↑ ( Zero ...
... proof is on xs rather than on ys or zs . Note that associativity is proved for all lists , finite , partial , or infinite . Hence we can assert that is associative without qualification . The reader should compare the proof above with a ...
... proof . 0 Since similar situations arise in many induction proofs , it is worth reiterating how the proof of the main result was achieved . First we simplified both sides of the equation in the inductive case , arriving at two different ...