## Introducción a la programación funcional usando 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 38

Page 351

The output

implicit in Exercise 10.2.2. 10.3.3 Prove the law concatm . mapm concatm =

concatm . concatm. 10.4 Combining

The output

**monad**is a special case of this**monad**, as is the counting**monad**implicit in Exercise 10.2.2. 10.3.3 Prove the law concatm . mapm concatm =

concatm . concatm. 10.4 Combining

**monads**Sometimes we want to combine**monads**.Page 354

MkEXC (recover p > return) {right unit law for

definition of recover} V The other two proofs are similar. We have now installed

EXC m as a

MkEXC (recover p > return) {right unit law for

**monad**m} MkEXC (recover p) = {definition of recover} V The other two proofs are similar. We have now installed

EXC m as a

**monad**, and the next step is to install EXC as a**monad**transformer: ...Page 356

We have now installed STT m as a

fs = do{x — g; return (x,s)} This is similar to the definition of return on St, with an ...

We have now installed STT m as a

**monad**, and the next step is to install 57T as a**monad**transformer: instance Transformer STT where promote g = MkSTT f wherefs = do{x — g; return (x,s)} This is similar to the definition of return on St, with an ...

### What people are saying - Write a review

We haven't found any reviews in the usual places.

### Other editions - View all

### Common terms and phrases

abstr apply approx Arblnt argument binary heap binary search tree binary tree Bool Btree calculation Char characters computation concat constructor datatype declaration define a function definition denote digits efficient elements empty eval evaluation example exercise Expr expression False filter finite flatcat flatten foldl foldn foldr Fork xt functional programming functor getChar Haskell height hiext implementation induction infinite list inits insert instance Integer isEmpty iterate laws lazy evaluation Leaf list comprehensions list of length lists xs map f Meertens mkBtree MkOut monad monad transformer natural numbers newtype Node nonempty list Null operations pair parser proof prove putChar qsort queue quicksort recursive reduction representation result reverse scanl Section sequence sortby square steps Stree String subtrees Succ Succ Succ Zero takes takeWhile tuple type class x:xs xmatchlist xs h xt yt