Introduction to Functional Programming in Haskell with the help of Hutton’s textbook and 101companies Ralf Lammel Software Languages Team Acknowledgment * Thomas Schmorleiz * Andrei Varanovich http://softlang.wikidot.com/haskell1301 Format • Up to 2 * 4 hours (over 2 days) • Lecturer speaks and codes. • Audience asks and hacks. • Bio breaks every now and then. • Short assignments every now and then. • Main resources: • Hutton’s textbook “Programming in Haskell” • http://101companies.org/wiki/Theme:Haskell_introduction Table of contents •Background •Basics •Higher-order functions •Combinator libraries •Type classes •Functors and foldables &bull ...
Cambridge University Press 978-1-316-62622-1 — Programming in Haskell Graham Hutton Frontmatter More Information ProgramminginHaskell SecondEdition Haskell is a purely functional language that allows programmers to rapidly develop clear, concise and correct software. The language has grown in popularity in recent years, both in teaching and in industry. This book is based on the author’s experience of teaching Haskell for more than 20 years. All concepts are explained from rst principles and no programming experience is required, making this book accessible to a broad spectrumofreaders.WhilePartIfocusesonbasicconcepts,PartIIintroducesthereader to more advanced topics. This new edition has been extensively updated and expanded ...
Under consideration for publication in J. Functional Programming 1 FUNCTIONAL PEARLS Monadic Parsing in Haskell Graham Hutton University of Nottingham Erik Meijer University of Utrecht 1 Introduction This paper is a tutorial on dening recursive descent parsers in Haskell. In the spirit of one-stop shopping, the paper combines material from three areas into a single source. The three areas are functional parsers (Burge, 1975; Wadler, 1985; Hutton, 1992; Fokker, 1995), the use of monads to structure functional programs (Wadler, 1990; Wadler, 1992a; Wadler, 1992b), and the use of special syntax for monadic programs in Haskell (Jones, 1995; Peterson et al ...