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 88
... argument by 1 , and plusc O is the identity function on integers . This simple device for replacing structured arguments by a sequence of simple ones is known as currying , after the American logician Haskell B. Curry ( after whom the ...
... argument , then foldl ( → ) is strict , and so is equivalent to strict ( foldl ( e ) ) , and hence also equivalent to sfoldl ( → ) . It follows that replacing foldl by sfoldl in the definition of sum is valid , and the same ...
... argument return ( Con ( c : cs ) xs ) The parser argument recognises the argument of a constant function , if any : argument :: Parser [ Expr ] argument = tuple orelse ( notuple orelse return [ ] ) The parser tuple recognises an ...