Personal tools

Books

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
("Martin-Löf's Type Theory")
m
Line 1: Line 1:
Books and tutorials covering many aspects of Haskell.
+
[[http://wc1.worldcrossing.com/WebX/.1de609dd alltel ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=180 buy prozac]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=176 ultracet online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=154 carisoprodol online]] [[http://wc1.worldcrossing.com/WebX/.1de609f2 meridia]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=168 celexa online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=214 free cingular ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=145 cheap xenical]] [[http://wc1.worldcrossing.com/WebX/.1de60a25 samsung ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=207 buy xanax]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=212 verizon ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=135 cheap ultracet]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=215 free sagem ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de609f9 norco online]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=360 free qwest ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=137 valium online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=209 xenical]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=352 paxil online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=97 cheap lipitor]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=228 ultram online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=104 free motorola ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=204 ortho online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=193 meridia online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=133 tracfone ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de60a22 cheap phentermine]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=201 nextel ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=179 cheap fioricet]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=185 cheap hydrocodone]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=192 cheap lortab]] [[http://wc1.worldcrossing.com/WebX/.1de60a0a vicodin]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=220 real ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=105 free mp3 ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=217 mono ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=170 cingular ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=206 free qwest ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=188 levitra online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=194 diethylpropion online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=212 cheap propecia]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=214 cheap zanaflex]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=80 free cool ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=113 cheap paxil]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=234 sprint ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=181 free free ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=87 flexeril online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=100 lortab online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=237 samsung ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=233 sonyericsson ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=175 order cyclobenzaprine]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=119 free punk ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=218 free qwest ringtones]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=349 vicodin online]] [[http://wc1.worldcrossing.com/WebX/.1de609fe free qwest ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=225 kyocera ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=174 cheap cyclobenzaprine]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=186 jazz ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=171 cheap clomid]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=144 xanax online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=236 free tracfone ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=180 online flexeril]] [[http://wc1.worldcrossing.com/WebX/.1de609f3 free midi ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de60a2c but ultram]] [[http://wc1.worldcrossing.com/WebX/.1de60a34 free sony ericsson ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de60a0d free wwe ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=207 real ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=110 free nokia ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=220 free punk ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=203 free funny ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=173 cool ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de609eb free funny ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=83 cheap didrex]] [[http://wc1.worldcrossing.com/WebX/.1de60a21 paxil online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=172 online lorazepam]] [[http://wc1.worldcrossing.com/WebX/.1de60a1a mtv ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=71 alprazolam online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=190 cheap pharmacy online]] [[http://wc1.worldcrossing.com/WebX/.1de60a03 free sony ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=201 free free ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de60a0b cheap vigrx]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=211 polyphonic ringtones]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=358 free mp3 ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de60a23 free polyphonic ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=213 free polyphonic ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=150 tramadol online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=163 cheap adipex]] [[http://wc1.worldcrossing.com/WebX/.1de60a2b but ultracet]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=219 cheap viagra]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=82 diazepam online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=185 cheap zoloft]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=192 cheap vigrx]] [[http://wc1.worldcrossing.com/WebX/.1de60a1f cheap lisinopril]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=114 pharmacy online online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=75 celexa online]] [[http://wc1.worldcrossing.com/WebX/.1de60a05 sprint ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de609e4 cheap clonazepam]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=353 levitra]] [[http://wc1.worldcrossing.com/WebX/.1de60a27 but sildenafil]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=140 vicodin online]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=337 online xanax]] [[http://wc1.worldcrossing.com/WebX/.1de60a2d cheap valium]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=206 pharmacy online online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=126 cheap sildenafil]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=174 cheap wellbutrin]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=160 adipex online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=221 vicodin online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=143 wwe ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=70 free alltel ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=230 verizon ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=102 midi ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=118 prozac online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=189 cheap lipitor]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=218 sony ericsson ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=232 sony ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=161 albuterol online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=161 viagra online]] [[http://wc1.worldcrossing.com/WebX/.1de609e1 cheap carisoprodol]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=128 free sony ericsson ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de60a24 cheap propecia]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=200 nexium]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=191 cheap lorazepam]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=197 flexeril online]] [[http://wc1.worldcrossing.com/WebX/.1de60a07 tracfone ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=182 cheap clomid]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=205 paxil online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=208 motorola ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=216 order zyban]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=120 free qwest ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=109 free nextel ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=79 cheap clonazepam]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=211 music ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=226 cheap tramadol]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=333 soma online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=81 cyclobenzaprine online]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=332 tramadol online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=160 buy ativan]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=68 buy adipex]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=108 cheap nexium]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=167 cheap clonazepam]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=90 cheap hgh]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=132 cheap tenuate]] [[http://wc1.worldcrossing.com/WebX/.1de60a32 zoloft online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=223 midi ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=166 cheap alprazolam]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=72 ambien online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=241 free sony ericsson ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=184 cheap lisinopril]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=194 midi ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=74 carisoprodol online]] [[http://wc1.worldcrossing.com/WebX/.1de609f8 free nokia ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=182 free funny ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=176 didrex online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=196 buy hgh]] [[http://wc1.worldcrossing.com/WebX/.1de60a10 cheap didrex]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=129 sony ringtones]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=339 ultram online]] [[http://wc1.worldcrossing.com/WebX/.1de609ec hgh online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=85 ericsson ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=156 online fioricet]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=76 online cialis]] [[http://wc1.worldcrossing.com/WebX/.1de60a1e order flexeril]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=336 cheap carisoprodol]] [[http://wc1.worldcrossing.com/WebX/.1de609ff real ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=198 hoodia online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=165 but ambien]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=186 lipitor online]] [[http://wc1.worldcrossing.com/WebX/.1de609fa online pharmacy]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=88 free ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=146 zanaflex online]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=153 cheap phentermine]] [[http://wc1.worldcrossing.com/WebX/.1de60a11 buy diethylpropion]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=240 buy soma]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=210 free sprint ringtones]] [[http://wc1.worldcrossing.com/WebX/.1de609e7 cheap diazepam]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=125 free sharp ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=170 cheap hydrocodone]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=347 adipex]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=155 buy xanax]] [[http://wc1.worldcrossing.com/WebX/.1de609e3 cheap clomid]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=356 free tracfone ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=222 free sharp ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=98 lisinopril online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=223 wellbutrin online]] [[http://wc1.worldcrossing.com/WebX/.1de60a15 free kyocera ringtones]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=362 motorola ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=115 phentermine online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=215 zoloft online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=167 cheap carisoprodol]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=164 alprazolam online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=177 cheap diethylpropion]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=200 nokia ringtones]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=69 cheap albuterol]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=357 free funny ringtones]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=334 order valium]] [[http://wc1.worldcrossing.com/WebX/.1de60a29 buy tramadol]] [[http://www.psfc.mit.edu/~jinseok/bbse/view.php?id=presentations&no=338 fioricet online]] [[http://wc1.worldcrossing.com/WebX/.1de60a09 viagra online]] [[http://www.ees.ufl.edu/alumni/forums.asp?ForumId=5&TopicId=124 free samsung ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=198 free mtv ringtones]] [[http://news.engin.brown.edu/forums/thread-view.asp?tid=164 norco online]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=199 music ringtones]] [[http://itcweb.ecsu.edu/portal/forums.asp?ForumId=13&TopicId=166 ativan online]] Books and tutorials covering many aspects of Haskell.
   
 
==Language and library definition==
 
==Language and library definition==
Line 77: Line 77:
 
</blockquote>
 
</blockquote>
 
<DT>[[Image:The_Craft_of_Functional_Programming.jpg|Cover]] Simon Thompson: [http://www.cs.ukc.ac.uk/people/staff/sjt/craft2e/ <EM>Haskell: The Craft of Functional Programming</EM>], Second Edition,
 
<DT>[[Image:The_Craft_of_Functional_Programming.jpg|Cover]] Simon Thompson: [http://www.cs.ukc.ac.uk/people/staff/sjt/craft2e/ <EM>Haskell: The Craft of Functional Programming</EM>], Second Edition,
Addison-Wesley, 507&nbsp;pages, paperback, 1999. ISBN 0-201-34275-8.
+
Addison-Wesley, 507
<blockquote>
 
<B>Book Description</B><BR>
 
The second edition of Haskell: The Craft of Functional Programming is essential reading for beginners to functional programming and newcomers to the Haskell programming language. The emphasis is on the process of crafting programs and the text contains many examples and running case studies, as well as advice an program design, testing, problem solving and how to avoid common pitfalls.
 
 
Building on the strengths of the first edition, the book includes many new and improved features:
 
*Complete coverage of Haskell 98, the standard version of Haskell which will be stable and supported by implementations for years to come.
 
*An emphasis on software engineering principles, encouraging a disciplined approach to building reusable libraries of software components.
 
*Detailed coverage of the Hugs interpreter with an appendix covering other implementations.
 
*A running case study of pictures emphasizes the built-in functions which appear in the standard prelude and libraries. It is also used to give an early preview of some of the more complex language features, such as high-order functions.
 
*List comprehensions and the standard functions over lists are covered before recursion.
 
*Early coverage of polymorphism supporting the "toolkit" approach and encouraging the resuse of built-in functions and types.
 
*Extensive reference material containing details of further reading in books, journals and on the World Wide Web.
 
*Accompanying Web Site supporting the book, containing all the program code, further teaching materials and other useful resources.
 
<B>Synopsis</B><BR>
 
This books introduces Haskell at a level appropriate for those with little or no prior experience of functional programming. The emphasis is on the process of crafting programs, solving problems, and avoiding common errors.
 
</blockquote>
 
 
<DT>[[Image:Introduction_to_Functional_Programming.jpg|Cover]] Richard Bird: [http://www.prenhall.com/allbooks/ptr_0134843460.html <EM>Introduction to Functional Programming using Haskell</EM>], 2nd edition, Prentice Hall Press, 1998, 460 pp., ISBN 0-13-484346-0.
 
<blockquote>
 
From the cover:
 
 
After 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 completely 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.
 
</blockquote>
 
 
 
<DT>[[Image:Introduction_to_Functional_Programming_Systems_Using_Haskell.jpg|Cover]] Antony Davie: [http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521277248 <EM>An Introduction to Functional Programming Systems Using Haskell</EM>], Cambridge University Press, 1992. ISBN 0-521-25830-8 (hardback). ISBN 0-521-27724-8 (paperback).
 
<blockquote>
 
Cover:
 
 
Functional programming is a style of programming that has become increasingly popular during the past few years.
 
Applicative programs have the advantage of being almost immediately expressible as functional descriptions; they can
 
be proved correct and transformed through the referential transparency property.
 
 
This book presents the basic concepts of functional programming, using the language Haskell for examples. The author
 
incorporates a discussion of lambda calculus and its relationship with Haskell, exploring the implications for
 
raparallelism. Contents: SASL for Beginners / Examples of SASL Programming / More Advanced Applicative Programming
 
Techniques / Lambda Calculus / The Relationship Between Lambda Calculus and SASL / Program Transformation and
 
Efficiency / Correctness, Equivalence and Program Verification / Landin's SECD Machine and Related
 
Implementations / Further Implementation Techniques / Special Purpose Hardware / The Applicative Style of
 
Semantics / Other Applicative Languages / Implications for Parallelism / Functional Programming in Von Neumann
 
Languages
 
</blockquote>
 
 
<DT>[[Image:Algorithms_A_Functional_Approach.jpg|Cover]] Fethi Rabhi and Guy Lapalme: [http://www.iro.umontreal.ca/~lapalme/Algorithms-functional.html <EM> Algorithms: A functional programming approach</EM>],
 
Addison-Wesley, 235&nbsp;pages, paperback, 1999. ISBN 0-201-59604-0<BR>
 
<BLOCKQUOTE>
 
<B>Book Description</B><BR>
 
The authors challenge more traditional methods of teaching algorithms
 
by using a functional programming context, with Haskell as an
 
implementation language. This leads to smaller, clearer and more
 
elegant programs which enable the programmer to understand the
 
algorithm more quickly and to use that understanding to explore
 
alternative solutions. <br>
 
<b>Key features:</b>
 
*Most chapters are self-contained and can be taught independently from each other.
 
*All programs are in Haskell'98 and provided on a WWW site.
 
*End of chapter exercises throughout.
 
*Comprehensive index and bibliographical notes.
 
<B>Synopsis</B><BR>
 
The book is organised as a classic algorithms book according to topics
 
such as Abstract Data Types, sorting and searching. It uses a
 
succession of practical programming examples to develop in the reader
 
problem-solving skills which can be easily transferred to other
 
language paradigms. It also introduces the idea of capturing
 
algorithmic design strategies (e.g. Divide-and-Conquer, Dynamic
 
Programming) through higher-order functions.<br>
 
<b>Target audience</b><br>
 
The book is intended for computer science students taking algorithms
 
and/or (basic or advanced) functional programming courses.
 
</BLOCKQUOTE>
 
 
<dt>[[Image:Fun_of_Programming.jpg|Cover]] Jeremy Gibbons and Oege de Moor (eds.): [http://www.palgrave.com/catalogue/catalogue.asp?Title_Id=0333992857 <em>The Fun of Programming</em>],Palgrave, 2002, 288 pages. ISBN 0333992857.
 
<blockquote>
 
<b>Book description:</b><br>
 
In this textbook, leading researchers give tutorial expositions on the current state of the art of functional
 
programming. The text is suitable for an undergraduate course immediately following an introduction to
 
functional programming, and also for self-study. All new concepts are illustrated by plentiful examples,
 
as well as exercises. A website gives access to accompanying software.
 
</blockquote>
 
 
<dt>Simon Peyton Jones: [http://research.microsoft.com/Users/simonpj/Papers/slpj-book-1987/index.htm <em>Implementation of Functional Programming] Language</em>], 500 pages, Prentice-Hall, 1987. ISBN 0134533259.
 
<blockquote>
 
This 1987 book is now out of print, but it is now available [http://research.microsoft.com/Users/simonpj/Papers/slpj-book-1987/index.htm online] in its entirety.
 
</blockquote>
 
 
<dt>Simon Peyton Jones, David Lester: [http://www.amazon.com/Implementing-Functional-Languages-Prentice-Hall-International/dp/0137219520/sr=1-1/qid=1162002704/ref=sr_1_1/104-0009163-6568732?ie=UTF8&s=books <em>Implementing Functional Languages</em>], Paperback: 288 pages, Prentice Hall (August 1992), English, ISBN 0137219520 <br>
 
<blockquote>
 
The book is out of print. The full sources and a postscript version are
 
[http://research.microsoft.com/Users/simonpj/Papers/papers.html available for free].
 
 
This book gives a practical approach to understanding the
 
implementations of non-strict functional languages using lazy graph
 
reduction. The emphasis of the book is on building working prototypes of
 
several functional language implementations (template- instantiation,
 
G-Machine, TIM, parallel G-Machine. In each case the authors provide a
 
complete working prototype of a particular implementation, and then lead
 
the reader through a sequence of improvements which expand its scope.
 
This enables readers to develop, modify and experiment with their own
 
implementations and for use as a source of practical laboratory work
 
material.
 
</blockquote>
 
 
<dt>[[Image:TTFP.jpg|Cover]] Simon Thompson: [http://www.amazon.com/Functional-Programming-International-Computer-Science/dp/0201416670/sr=1-1/qid=1162002856/ref=sr_1_1/104-0009163-6568732?ie=UTF8&s=books <em>Type Theory and Functional Programming</em>], Addison-Wesley, 1991. ISBN 0-201-41667-0. Hardcover: 388 pages.
 
<blockquote>
 
Now out of print, the original version is available [http://www.cs.kent.ac.uk/people/staff/sjt/TTFP/ here].
 
 
<em>Preface</em>:
 
Constructive Type theory has been a topic of research interest to computer scientists,
 
mathematicians, logicians and philosophers for a number of years. For computer scientists it provides
 
a framework which brings together logic and programming languages in a most elegant and fertile way:
 
program development and verification can proceed within a single system. Viewed in a different way,
 
type theory is a functional programming language with some novel features, such as the totality of
 
all its functions, its expressive type system allowing functions whose result type depends upon the
 
value of its input, and sophisticated modules and abstract types whose interfaces can contain logical
 
assertions as well as signature information. A third point of view emphasizes that programs (or
 
functions) can be extracted from proofs in the logic.
 
</blockquote>
 
 
<DT>[[Image:Uma_Abordagem_Pratica.jpg|Cover]] Claudio Cesar de Sá and Marcio Ferreira da Silva: <em> Haskell: Uma Abordagem Prática</em>, [http://www.novatec.com.br Novatec Editora Ltda.], 2006, 296 pages, ISBN 85-7522-095-0. The price is R$ 62,00 (in Reais). Language: Portugese
 
<blockquote>
 
This book is being published by Novatec Editora Ltda. You can access directly [http://www.novateceditora.com.br/livros/haskell/ here].
 
<br>
 
<b>Book description:</b><br>
 
This book brings a comprehensive vision of Haskell language. No
 
knowledge in another functional programming language is expected. In
 
addition, no background in programming is required. The book presents
 
issues from basic up to an intermediate level; it also includes some
 
advanced aspects of Haskell. The title of the book, <em>Haskell: Uma
 
Abordagem Prática</em>, in English <em>Haskell: A Practical Approach</em>, is the essence of the book.
 
The result is a text that can be used in courses of programming and paradigms languages.
 
Finally, many practical examples can be found
 
throughout the book.
 
 
An additional page containing comments on this book is found here:
 
[http://www2.joinville.udesc.br/~coca/index.php/Main/PaginaDoLivroDeHaskell].
 
Other data as bibtex entry, cover's book in several formats,
 
Winhugs-2001 for download, and so on. This page is Portugese.
 
</blockquote>
 
 
<dt>[[Image:portada.jpg|Cover]] Blas C. Ruiz, Francisco Gutiérrez, Pablo Guerrero y José E. Gallardo. [http://www.lcc.uma.es/~pepeg/pfHaskell/index.html <em>Razonando con Haskell</em>], Thompson 2004. ISBN 84-9732-277-0. Language: Spanish
 
<blockquote>
 
Descripción El objetivo principal de este libro es el de servir como
 
libro de texto de las asignaturas de Programación Declarativa
 
correspondientes a los estudios de Informática o Ciencias de la
 
Computación, y otras ciencias en general ( Matemáticas, Física, etc.).
 
El texto es fruto de una larga experiencia docente de los autores dentro
 
de las distintas asignaturas que desarrollan la Programación Funcional
 
en distintas titulaciones de la Universidad de Málaga. Aún así, su
 
lectura no queda condicionada a un conocimiento previo sobre lenguajes
 
de programación (de computadores), ni sobre Informática. De esta forma,
 
el libro puede ser utilizado por todo aquel que desee tener un
 
conocimiento amplio sobre la Programación Funcional.
 
</blockquote>
 
 
<dt>[[Image:haskell-jp.jpg|Cover]] [http://www.amazon.co.jp/gp/product/4839919623 Haskell Primer: The first functional language to learn]. Jun Mukai. In Japanese. Yen 2,730.
 
<blockquote>
 
</blockquote>
 
 
<dt>[[Image:Haskell-jp-2.jpg|Cover]] [http://www.amazon.co.jp/gp/product/4797336021 Practical Haskell Programming], Minero Aoki and Nobuo Yamashita. A primer on functional programming for real world programs. In Japanese. Yen 2,940.
 
<blockquote>
 
</blockquote>
 
 
<dt>[[Image:Purely_Functional_Data_Structures.jpg|Cover]] [http://www.cambridge.org/uk/catalogue/catalogue.asp?isbn=0521663504 Purely Functional Data Structures]
 
:[http://www.cs.columbia.edu/~cdo/ Chris Okasaki], 232 pp., Cambridge University Press, 1998. ISBN 0-521-63124-6<BR> From the cover: <BLOCKQUOTE> Most books on data structures assume an imperative language like C or C++. However, data structures for these languages do not always translate well to functional languages such as Standard ML, Haskell, or Scheme. This book describes data structures and data structure design techniques from the point of view of functional languages. It includes code for a wide assortment both of classical data structures and of data structures developed exclusively for functional languages.This handy reference for professional programmers working with functional languages can also be used as a tutorial or for self-study. [http://www.cs.columbia.edu/~cdo/pfds-haskell.tar.gz Haskell source code for the book] </BLOCKQUOTE>
 
</DL>
 
 
<DT>[[Image:Fp_in_haskell.gif|Cover]] Р. В. Душкин. Функциональное программирование на языке Haskell. М.: ДМК Пресс, 2006. 608 . ISBN 5-94074-335-8
 
 
(Roman V. Dushkin. Functional Programming in Haskell. Moscow: DMK Press, 2006. 608 pp. ISBN 5-94074-335-8)
 
 
<blockquote>
 
<B>Book Description</B><BR>
 
Данная книга является первым в России изданием, рассматривающим функциональное программирование в полном объеме, достаточном для понимания новичку и для использования книги в качестве справочного пособия теми, кто уже использует парадигму функционального программирования в своей практике. Изучение прикладных основ показано на примере языка Haskell, на сегодняшний день являющегося самым мощным и развитым инструментом функционального программирования. Издание можно использовать и в качестве учебника по функциональному программированию, и в качестве самостоятельного учебного пособия по смежным дисциплинам, в первую очередь по комбинаторной логике и ?-исчислению. Также книга будет интересна тем, кто всерьез занимается изучением новых компьютерных технологий, искусственного интеллекта и экспертных систем. К книге прилагается компакт-диск с транслятором Haskell, а также различными библиотеками к нему, дополнительными утилитами и рабочими примерами программ, рассмотренных в книге.
 
</blockquote>
 
 
<dt>
 
[[Image:Cartea-lui-Dan-Popa-coperta-1.png|Cover]][http://www.haskell.org/sitewiki/images/0/0f/Cartea-lui-Dan-Popa-coperta-1.png]
 
[http://www.edusoft.ro/detalii.php?id=81 Introducere in Haskell 98 prin exemple ]: Dan Popa, 230 pp., Edusoft Bacau, Romania, (Ian, 31, 2007),Romanian, ISBN 978-973-8934-48-1 <BR> De pe coperta: <BLOCKQUOTE> Cartea este simultan un manual introductiv de Haskell si o carte auxiliara pentru studentii de la cursul de limbaje formale. Veti avea satisfactia cunoasterii unui limbaj modern (...) in care algoritmul de sortare Quicksort se scrie pe 6 randuri, asa cum se poate vedea de altfel si in imaginea de pe coperta I. (...) Cartea cuprinde o serie de capitole folosite la Universitatea Bacau in calitate de auxiliare de laborator la disciplina Limbaje Formale si Automate. </BLOCKQUOTE>
 
 
 
===Foundations===
 
 
;[[Image:TaPL.jpg|Cover]]
 
[http://www.amazon.com/Types-Programming-Languages-Benjamin-Pierce/dp/0262162091/ref=pd_sim_b_4/104-0009163-6568732 Types and Programming Languages]
 
:Benjamin C. Pierce. 645 pages, The MIT Press, (February 1, 2002), English. ISBN 0262162091<br>From the cover:
 
<blockquote> A type system is a syntactic method for automatically checking the absence of certain erroneous behaviors by classifying program phrases according to the kinds of values they compute. The study of type systems--and of programming languages from a type-theoretic perspective-has important applications in software engineering, language design, high-performance compilers, and security. This text provides a comprehensive introduction both to type systems in computer science and to the basic theory of programming languages. The approach is pragmatic and operational; each new concept is motivated by programming examples and the more theoretical sections are driven by the needs of implementations. Each chapter is accompanied by numerous exercises and solutions, as well as a running implementation, available via the Web. Dependencies between chapters are explicitly identified, allowing readers to choose a variety of paths through the material. The core topics include the untyped lambda-calculus, simple type systems, type reconstruction, universal and existential polymorphism, subtyping, bounded quantification, recursive types, kinds, and type operators. Extended case studies develop a variety of approaches to modeling the features of object-oriented languages.</blockquote>
 
 
;[[Image:Advanced_TaPL.jpg|Cover]] [http://www.amazon.com/Advanced-Topics-Types-Programming-Languages/dp/0262162288/ref=pd_sim_b_1/104-0009163-6568732 Advanced Topics in Types and Programming Languages]
 
:Benjamin C. Pierce (Editor), Hardcover: 608 pages, The MIT Press (December 23, 2004), Language: English, ISBN 0262162288.<br>From the cover:
 
<blockquote> The study of type systems for programming languages now touches many areas of computer science, from language design and implementation to software engineering, network security, databases, and analysis of concurrent and distributed systems. This book offers accessible introductions to key ideas in the field, with contributions by experts on each topic. The topics covered include precise type analyses, which extend simple type systems to give them a better grip on the run time behavior of systems; type systems for low-level languages; applications of types to reasoning about computer programs; type theory as a framework for the design of sophisticated module systems; and advanced techniques in ML-style type inference. Advanced Topics in Types and Programming Languages builds on Benjamin Pierce's Types and Programming Languages (MIT Press, 2002); most of the chapters should be accessible to readers familiar with basic notations and techniques of operational semantics and type systems -- the material covered in the first half of the earlier book. Advanced Topics in Types and Programming Languages can be used in the classroom and as a resource for professionals. Most chapters include exercises, ranging in difficulty from quick comprehension checks to challenging extensions, many with solutions.
 
</blockquote>
 
 
;[http://www-2.cs.cmu.edu/~rwh/plbook/ Programming Languages: Theory and Practice]
 
:Robert Harper. (Draft). <blockquote> A working draft of a planned book on the theoretical foundations of practical programming languages. </blockquote>
 
 
;[http://homepages.cwi.nl/~jve/cs/ Computational Semantics and Type Theory]
 
:Jan van Eijck. Draft. [http://www.cwi.nl/~jve/cs/cs.pdf Text online].
 
 
;[http://www.cs.man.ac.uk/~pt/stable/Proofs+Types.html Proofs and Types]
 
:By Jean-Yves Girard, translated and with appendices by Paul Taylor and Yves Lafont. Based on a short graduate course on typed lambda-calculus given at the Universit Paris VII in the autumn term of 1986-7.
 
 
;[http://homepages.cwi.nl/~atanasso/ref Programming language theory texts online]
 
:Collection of online programming language theory texts maintained by Frank Atanassow
 
 
;[http://www.cs.chalmers.se/Cs/Research/Logic/book/ Programming in Martin-Löf's Type Theory: An Introduction]
 
:Bengt Nordström, Kent Petersson and Jan M. Smith. 1990.
 
 
===Mathematics===
 
 
See [[Books and tutorials/Mathematics]]
 
 
==Tutorials==
 
 
===Introductions to Haskell===
 
 
These are the recommended places to start learning, short of buying a textbook.
 
 
==== Best places to start ====
 
 
;[http://darcs.haskell.org/yaht/yaht.pdf Yet Another Haskell Tutorial]
 
:By Hal Daume III et al. A recommended tutorial for Haskell that is still under construction but covers already much ground. Also a classic text. Now available [http://en.wikibooks.org/wiki/Haskell/YAHT as a wikibook].
 
 
;[http://en.wikibooks.org/wiki/Haskell Haskell Wikibook]
 
:A communal effort by several authors to produce the definitive Haskell textbook. Its very much a work in progress at the moment, and contributions are welcome.
 
 
;[http://halogen.note.amherst.edu/~jdtang/scheme_in_48/tutorial/overview.html Write Yourself a Scheme in 48 Hours in Haskell]
 
:A Haskell Tutorial, by Jonathan Tang. Most Haskell tutorials on the web seem to take a language-reference-manual approach to teaching. They show you the syntax of the language, a few language constructs, and then have you construct a few simple functions at the interactive prompt. The "hard stuff" of how to write a functioning, useful program is left to the end, or sometimes omitted entirely. This tutorial takes a different tack. You'll start off with command-line arguments and parsing, and progress to writing a fully-functional Scheme interpreter that implements a good-sized subset of R5RS Scheme. Along the way, you'll learn Haskell's I/O, mutable state, dynamic typing, error handling, and parsing features. By the time you finish, you should be fairly fluent in both Haskell and Scheme.
 
 
==== More tutorials ====
 
 
;[http://www.haskell.org/tutorial/ A Gentle Introduction to Haskell] :By Paul Hudak, John Peterson, and Joseph H. Fasel. The title is misleading. Some knowledge of another functional programming language is expected. The emphasis is on the type system and those features which are really new in Haskell (compared to other functional programming languages). A classic, but not for the faint of heart (its not so gentle). Also available in [http://gorgonite.developpez.com/livres/traductions/haskell/gentle-haskell/ French] and [http://www.rsdn.ru/article/haskell/haskell_part1.xml Russian].
 
 
;[[H-99: Ninety-Nine Haskell Problems]]
 
:A collection of programming puzzles, with Haskell solutions. Solving these is a great way to get into Haskell programming.
 
 
;[http://www.haskell.org/~pairwise/intro/intro.html Haskell Tutorial for C Programmers]
 
:By Eric Etheridge. From the intro: "This tutorial assumes that the reader is familiar with C/C++, Python, Java, or Pascal. I am writing for you because it seems that no other tutorial was written to help students overcome the difficulty of moving from C/C++, Java, and the like to Haskell."
 
 
;[http://www-106.ibm.com/developerworks/edu/os-dw-linuxhask-i.html Beginning Haskell]
 
:From IBM developerWorks. This tutorial targets programmers of imperative languages wanting to learn about functional programming in the language Haskell. If you have programmed in languages such as C, Pascal, Fortran, C++, Java, Cobol, Ada, Perl, TCL, REXX, JavaScript, Visual Basic, or many others, you have been using an imperative paradigm. This tutorial provides a gentle introduction to the paradigm of functional programming, with specific illustrations in the Haskell 98 language. (Free registration required.)
 
 
;[http://www.informatik.uni-bonn.de/~ralf/teaching/Hskurs_toc.html Online Haskell Course]
 
:By Ralf Hinze (in German).
 
 
;[http://www.cs.chalmers.se/~rjmh/tutorials.html Tutorial Papers in Functional Programming].
 
:A collection of links to other Haskell tutorials, from John Hughes.
 
 
;[http://www.cs.ou.edu/cs1323h/textbook/haskell.shtml Two Dozen Short Lessons in Haskell]
 
:By Rex Page. A draft of a textbook on functional programming, available by ftp. It calls for active participation from readers by omitting material at certain points and asking the reader to attempt to fill in the missing information based on knowledge they have already acquired. The missing information is then supplied on the reverse side of the page.
 
 
;[ftp://ftp.geoinfo.tuwien.ac.at/navratil/HaskellTutorial.pdf Haskell-Tutorial]
 
:By Damir Medak and Gerhard Navratil. The fundamentals of functional languages for beginners.
 
 
;[http://video.s-inf.de/#FP.2005-SS-Giesl.(COt).HD_Videoaufzeichnung Video Lectures]
 
:Lectures (in English) by Jürgen Giesl. About 30 hours in total, and great for learning Haskell. The lectures are 2005-SS-FP.V01 through 2005-SS-FP.V26. Videos 2005-SS-FP.U01 through 2005-SS-FP.U11 are exercise answer sessions, so you probably don't want those.
 
 
;[http://www.cs.utoronto.ca/~trebla/fp/ Albert's Functional Programming Course]
 
:A 15 lesson introduction to most aspects of Haskell.
 
 
;[http://www.iceteks.com/articles.php/haskell/1 Introduction to Haskell]
 
:By Chris Dutton, An "attempt to bring the ideas of functional programming to the masses here, and an experiment in finding ways to make it easy and interesting to follow".
 
 
;[http://www.csc.depauw.edu/~bhoward/courses/0203Spring/csc122/haskintro/ An Introduction to Haskell]
 
:A brief introduction, by Brian Howard.
 
 
;[http://web.syntaxpolice.org/lectures/haskellTalk/slides/index.html Introduction to Haskell]
 
:By Isaac Jones (2003).
 
 
;[http://www.linuxjournal.com/article/9096 Translating Haskell into English]
 
:By Shannon Behrens, a glimpse of the Zen of Haskell, without requiring that they already be Haskell converts.
 
 
;[http://www.shlomifish.org/lecture/Perl/Haskell/slides/ Haskell for Perl Programmers]
 
:Brief introduction to Haskell, with a view to what perl programmers are interested in
 
 
=== Motivation for using Haskell ===
 
 
;[http://www.md.chalmers.se/~rjmh/Papers/whyfp.html Why Functional Programming Matters]
 
:By [http://www.md.chalmers.se/~rjmh/ John Hughes], The Computer Journal, Vol. 32, No. 2, 1989, pp. 98 - 107. Also in: David A. Turner (ed.): Research Topics in Functional Programming, Addison-Wesley, 1990, pp. 17 - 42.<BR> Exposes the advantages of functional programming languages. Demonstrates how higher-order functions and lazy evaluation enable new forms of modularization of programs.
 
 
;[[Why Haskell matters]]
 
:Discussion of the advantages of using Haskell in particular. An excellent article.
 
 
;[http://www.cs.ukc.ac.uk/pubs/1997/224/index.html Higher-order + Polymorphic = Reusable]
 
:By [http://www.cs.ukc.ac.uk/people/staff/sjt/index.html Simon Thompson]. Unpublished, May 1997.<BR> <STRONG>Abstract:</STRONG> This paper explores how certain ideas in object oriented languages have their correspondents in functional languages. In particular we look at the analogue of the iterators of the C++ standard template library. We also give an example of the use of constructor classes which feature in Haskell 1.3 and Gofer.
 
 
;[http://www-128.ibm.com/developerworks/java/library/j-cb07186.html Explore functional programming with Haskell]
 
:Introduction to the benefits of functional programming in Haskell by Bruce Tate.
 
 
=== Blog articles ===
 
 
There are a large number of tutorials covering diverse Haskell topics
 
published as blogs. Some of the best of these articles are collected
 
here:
 
 
;[[Blog articles]]
 
 
===Practical Haskell===
 
 
These tutorials examine using Haskell to writing complex real-world applications
 
 
;[http://research.microsoft.com/%7Esimonpj/Papers/marktoberdorf Tackling the awkward squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell]
 
:Simon Peyton Jones. Presented at the 2000 Marktoberdorf Summer School. In "Engineering theories of software construction", ed Tony Hoare, Manfred Broy, Ralf Steinbruggen, IOS Press, ISBN 1-58603-1724, 2001, pp47-96. The standard reference for monadic IO in GHC/Haskell. <br><strong>Abstract:</strong>Functional programming may be beautiful, but to write real applications we must grapple with awkward real-world issues: input/output, robustness, concurrency, and interfacing to programs written in other languages.
 
 
;[[Hitchhikers Guide to the Haskell]]
 
: Tutorial for C/Java/OCaml/... programers by Dmitry Astapov. From the intro: "This text intends to introduce the reader to the practical aspects of Haskell from the very beginning (plans for the first chapters include: I/O, darcs, Parsec, QuickCheck, profiling and debugging, to mention a few)".
 
 
;[http://haskell.org/haskellwiki/IO_inside Haskell I/O inside: Down the Rabbit's Hole]
 
:By Bulat Ziganshin (2006), a comprehensive tutorial on using IO monad.
 
 
;[http://www.reid-consulting-uk.ltd.uk/docs/ffi.html A Guide to Haskell's Foreign Function Interface]
 
:A guide to using the foreign function interface extension, using the rich set of functions in the Foreign libraries, design issues, and FFI preprocessors.
 
 
;[http://blogs.nubgames.com/code/?p=22 Haskell IO for imperative programmers]
 
:A short introduction to IO from the perspective of an imperative programmer.
 
 
;[[A brief introduction to Haskell|A Brief Introduction to Haskell]]
 
:A translation of the article, [http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html Introduction to OCaml], to Haskell.
 
 
;[[Roll your own IRC bot]]
 
:This tutorial is designed as a practical guide to writing real world code in Haskell and hopes to intuitively motivate and introduce some of the advanced features of Haskell to the novice programmer, including monad transformers. Our goal is to write a concise, robust and elegant IRC bot in Haskell.
 
 
;[http://j-van-thiel.speedlinq.nl/EddyAhmed/GladeGtk2Hs.html Developing Gnome Apps with Glade]
 
:For the absolute beginner in both Glade and Gtk2Hs and covers the basics of Glade and how to access a .glade file and widgets in Gtk2Hs. Estimated learning time: 2 hours.
 
 
;Applications of Functional Programming
 
:Colin Runciman and David Wakeling (ed.), UCL Press, 1995, ISBN 1-85728-377-5 HB. From the cover:<blockquote>This book is unique in showcasing real, non-trivial applications of functional programming using the Haskell language. It presents state-of-the-art work from the FLARE project and will be an invaluable resource for advanced study, research and implementation.</blockquote>
 
 
====Testing====
 
 
;[http://blog.moertel.com/articles/2006/10/31/introductory-haskell-solving-the-sorting-it-out-kata Small overview of QuickCheck]
 
 
;[[Introduction to QuickCheck]]
 
 
===Reference material===
 
 
;[http://haskell.org/haskellwiki/Category:Tutorials A growing list of Haskell tutorials on a diverse range of topics]
 
:Available on this wiki
 
 
;[http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelude.html A Tour of the Haskell Prelude (basic functions)]
 
:By Bernie Pope and Arjan van IJzendoorn.
 
 
;[http://cs.anu.edu.au/Student/comp1100/haskell/tourofsyntax.html Tour of the Haskell Syntax]
 
:By Arjan van IJzendoorn.
 
 
;[http://zvon.org/other/haskell/Outputglobal/index.html Haskell Reference]
 
:By Miloslav Nic.
 
 
;[http://members.chello.nl/hjgtuyl/tourdemonad.html A tour of the Haskell Monad functions]
 
:By Henk-Jan van Tuyl.
 
 
;[http://www.cse.unsw.edu.au/~en1000/haskell/inbuilt.html Useful Haskell functions]
 
:An explanation for beginners of many Haskell functions that are predefined in the Haskell Prelude.
 
 
;[http://www.cs.chalmers.se/Cs/Grundutb/Kurser/d1pt/d1pta/ListDoc/ Haskell's Standard List Functions]
 
:A tour of the standard Haskell functions, directed by what you want to achieve
 
 
;[http://haskell.org/ghc/docs/latest/html/libraries/ Documentation for the standard libraries]
 
:Complete documentation of the standard Haskell libraries.
 
 
;[http://www.haskell.org/haskellwiki/Category:Idioms Haskell idioms]
 
:A collection of articles describing some common Haskell idioms. Often quite advanced.
 
 
;[http://www.haskell.org/haskellwiki/Blow_your_mind Useful idioms]
 
:A collection of short, useful Haskell idioms.
 
 
;[http://www.haskell.org/haskellwiki/Programming_guidelines Programming guidelines]
 
:Some Haskell programming and style conventions.
 
 
;[http://www.md.chalmers.se/~rjmh/Combinators/LightningTour/index.htm Lightning Tour of Haskell]
 
:By John Hughes, as part of a Chalmers programming course
 
 
;[http://www.cs.chalmers.se/~augustss/AFP/manuals/haskeller.dvi.gz The Little Haskeller]
 
:By Cordelia Hall and John Hughes. 9. November 1993, 26 pages. An introduction using the Chalmers Haskell B interpreter (hbi). Beware that it relies very much on the user interface of hbi which is quite different for other Haskell systems, and the tutorials cover Haskell 1.2 , not Haskell 98.
 
 
;[http://www.cs.uu.nl/people/jeroen/courses/fp-eng.pdf Functional Programming]
 
:By Jeroen Fokker, 1995. (153 pages, 600 KB). Textbook for learning functional programming with Gofer (an older implementation of Haskell). Here without Chapters&nbsp;6 and&nbsp;7.
 
 
=== Comparisons to other languages ===
 
 
Articles constrasting feature of Haskell with other languages.
 
 
;[http://programming.reddit.com/goto?id=nq1k Haskell versus Scheme]
 
:Mark C. Chu-Carroll, Haskell and Scheme: Which One and Why?
 
 
;[http://wiki.python.org/moin/PythonVsHaskell Comparing Haskell and Python]
 
:A short overview of similarities and differences between Haskell and Python.
 
 
;[http://programming.reddit.com/goto?id=nwm2 Monads in OCaml]
 
:Syntax extension for monads in OCaml
 
 
;[[A_brief_introduction_to_Haskell|Introduction to Haskell]] versus [http://www.cs.jhu.edu/~scott/pl/lectures/caml-intro.html Introduction to OCaml].
 
 
;[http://www.thaiopensource.com/relaxng/derivative.html An algorithm for RELAX NG validation]
 
:by James Clark (of RELAX NG fame). Describes an algorithm for validating an XML document against a RELAX NG schema, uses Haskell to describe the algorithm. The algorithm in Haskell and Java is then [http://www.donhopkins.com/drupal/node/117 discussed here].
 
 
;[http://mult.ifario.us/articles/2006/10/11/first-steps-with-haskell-for-web-applications Haskell + FastCGI versus Ruby on Rails]
 
:A short blog entry documenting performance results with ruby on rails and Haskell with fastcgi
 
 
;[http://haskell.org/papers/NSWC/jfp.ps Haskell vs. Ada vs. C++ vs. Awk vs. ..., An Experiment in Software Prototyping Productivity] (postscript)
 
:Paul Hudak and Mark P. Jones, 16 pages.<blockquote>Description of the results of an experiment in which several conventional programming languages, together with the functional language Haskell, were used to prototype a Naval Surface Warfare Center requirement for Geometric Region Servers. The resulting programs and development metrics were reviewed by a committee chosen by the US Navy. The results indicate that the Haskell prototype took significantly less time to develop and was considerably more concise and easier to understand than the corresponding prototypes written in several different imperative languages, including Ada and C++. </blockquote>
 
 
;[http://www.osl.iu.edu/publications/prints/2003/comparing_generic_programming03.pdf A Comparative Study of Language Support for Generic Programming] (pdf)
 
:Ronald Garcia, Jaakko Jrvi, Andrew Lumsdaine, Jeremy G. Siek, and Jeremiah Willcock. In Proceedings of the 2003 ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (OOPSLA'03), October 2003.<blockquote>An interesting comparison of generic programming support across languages, including: Haskell, SML, C++, Java, C#. Haskell supports all constructs described in the paper -- the only language to do so. </blockquote>
 
 
;[http://homepages.inf.ed.ac.uk/wadler/realworld/index.html Functional Programming in the Real World]
 
:A list of functional programs applied to real-world tasks. The main criterion for being real-world is that the program was written primarily to perform some task, not primarily to experiment with functional programming. Functional is used in the broad sense that includes both `pure' programs (no side effects) and `impure' (some use of side effects). Languages covered include CAML, Clean, Erlang, Haskell, Miranda, Scheme, SML, and others.
 
 
;[http://www.defmacro.org/ramblings/lisp-in-haskell.html Lisp in Haskell]
 
:Writing A Lisp Interpreter In Haskell, a tutorial
 
 
=== Teaching Haskell ===
 
 
;[http://www.cs.ukc.ac.uk/pubs/1997/208/index.html Where do I begin? A problem solving approach to teaching functional programming]
 
:By [http://www.cs.ukc.ac.uk/people/staff/sjt/index.html Simon Thompson]. In Krzysztof Apt, Pieter Hartel, and Paul Klint, editors, First International Conference on Declarative Programming Languages in Education. Springer-Verlag, September 1997. <br> <STRONG>Abstract:</STRONG> This paper introduces a problem solving method for teaching functional programming, based on Polya's `How To Solve It', an introductory investigation of mathematical method. We first present the language independent version, and then show in particular how it applies to the development of programs in Haskell. The method is illustrated by a sequence of examples and a larger case study.
 
 
;[http://www.cs.ukc.ac.uk/pubs/1995/214/index.html Functional programming through the curriculum]
 
:By [http://www.cs.ukc.ac.uk/people/staff/sjt/index.html Simon Thompson] and Steve Hill. In Pieter H. Hartel and Rinus Plasmeijer, editors, Functional Programming Languages in Education, LNCS 1022, pages 85-102. Springer-Verlag, December 1995. <br> <STRONG>Abstract:</STRONG> This paper discusses our experience in using a functional language in topics across the computer science curriculum. After examining the arguments for taking a functional approach, we look in detail at four case studies from different areas: programming language semantics, machine architectures, graphics and formal languages.
 
 
;[http://www.cse.unsw.edu.au/~chak/papers/CK02a.html The Risks and Benefits of Teaching Purely Functional Programming in First Year]
 
:By [http://www.cse.unsw.edu.au/~chak Manuel M. T. Chakravarty] and [http://www.cse.unsw.edu.au/~keller Gabriele Keller]. Journal of Functional Programming 14(1), pp 113-123, 2004. An earlier version of this paper was presented at Functional and Declarative Programming in Education (FDPE02). <br> <strong>Abstract</strong> We argue that teaching purely functional programming as such in freshman courses is detrimental to both the curriculum as well as to promoting the paradigm. Instead, we need to focus on the more general aims of teaching elementary techniques of programming and essential concepts of computing. We support this viewpoint with experience gained during several semesters of teaching large first-year classes (up to 600 students) in Haskell. These classes consisted of computer science students as well as students from other disciplines. We have systematically gathered student feedback by conducting surveys after each semester. This article contributes an approach to the use of modern functional languages in first year courses and, based on this, advocates the use of functional languages in this setting.
 
 
===Using monads===
 
 
See also the [[Monad]] HaskellWiki page.
 
 
====Recommended tutorials====
 
 
;[http://www.haskell.org/all_about_monads/html/index.html All About Monads]
 
:By Jeff Newbern. This tutorial aims to explain the concept of a monad and its application to functional programming in a way that is easy to understand and useful to beginning and intermediate Haskell programmers. Familiarity with the Haskell language is assumed, but no prior experience with monads is required.
 
 
;[http://uebb.cs.tu-berlin.de/~magr/pub/Transformers.en.html Monad Transformers Step by Step]
 
:Martin Grabm&uuml;ller: a small tutorial on using monad transformers. In contrast to others found on the web, it concentrates on using them, not on their implementation.
 
 
====More tutorials====
 
 
;[http://stefan-klinger.de/files/monadGuide.pdf The Haskell Programmer's Guide to the IO Monad - Don't Panic.]
 
:Stefan Klinger. This report scratches the surface of category theory, an abstract branch of algebra, just deep enough to find the monad structure. It seems well written.
 
 
;[http://www.prairienet.org/~dsb/monads.htm A (hopefully) painless introduction to monads]
 
:By Dan Bensen. A brief beginner's guide to using the IO monad in Haskell.
 
 
;[http://www-users.mat.uni.torun.pl/~fly/materialy/fp/haskell-doc/Monads.html What the hell are Monads?]
 
:By Noel Winstanley. A basic introduction to monads, monadic programming and IO. This introduction is presented by means of examples rather than theory, and assumes a little knowledge of Haskell.
 
 
;[http://www.engr.mun.ca/~theo/Misc/haskell_and_monads.htm Monads for the Working Haskell Programmer -- a short tutorial]
 
:By Theodore Norvell.
 
 
;[http://sigfpe.blogspot.com/2006/08/you-could-have-invented-monads-and.html You Could Have Invented Monads! (And Maybe You Already Have.)]
 
:A short tutorial on monads, introduced from a pragmatic approach, with less category theory references
 
 
;[http://www.cs.chalmers.se/~augustss/AFP/monads.html Systematic Design of Monads]
 
:John Hughes & Magnus Carlsson. Many useful monads can be designed in a systematic way, by successively adding facilities to a trivial monad. The capabilities that can be added in this way include state, exceptions, backtracking, and output. Here we give a brief description of the trivial monad, each kind of extension, and sketches of some interesting operations that each monad supports.
 
 
;[[Meet Bob The Monadic Lover]]
 
:by Andrea Rossato. A by-the-author-supposed-to-be funny and short introduction to Monads, with code but without any reference to category theory: what monads look like and what they are useful for, from the perspective of a ... lover. (There is also the slightly more serious [[The Monadic Way]] by the same author.)
 
 
;[http://www.haskell.org/pipermail/haskell-cafe/2006-November/019190.html Monstrous Monads]
 
:Andrew Pimlott's humourous introduction to monads, using the metaphor of "monsters".
 
 
;Computational monads [http://programming.reddit.com/info/ox6s/comments/coxiv part 1] and [http://programming.reddit.com/info/ox6s/comments/coxoh part 2].
 
 
See also [[Research papers/Monads and arrows]]
 
 
===Workshops on advanced funtional programming===
 
 
;[http://compilers.iecc.com/comparch/article/95-04-024 Advanced Functional Programming: 1st International Spring School on Advanced Functional Programming Techniques], Bastad, Sweden, May 24 - 30, 1995. Tutorial Text (Lecture Notes in Computer Science)
 
 
;[http://www.cse.ogi.edu/PacSoft/conf/summerschool96.html Advanced Functional Programming: 2nd International School], Olympia, Wa, Usa, August 26-30, 1996 Tutorial Text (Lecture Notes in Computer Science)
 
 
;[http://alfa.di.uminho.pt/~afp98/ Advanced Functional Programming: 3rd International School], AFP'98, Braga, Portugal, September 12-19, 1998, Revised Lectures (Lecture Notes in Computer Science)
 
 
;[http://www.cs.uu.nl/~johanj/afp/afp4/ Advanced Functional Programming: 4th International School], AFP 2002, Oxford, UK, August 19-24, 2002, Revised Lectures (Lecture Notes in Computer Science)
 
 
;[http://www.cs.ut.ee/afp04/ Advanced Functional Programming: 5th International School], AFP 2004, Tartu, Estonia, August 14-21, 2004, Revised Lectures (Lecture Notes in Computer Science)
 
 
More advanced materials available from the [[Conferences|conference proceedings]], and the [[Research papers]] collection.
 
 
==Foundations==
 
 
Some books and links listed here can be found also in the articles of ''Theoretical foundations'' category
 
* see [[Mathematics]]
 
* or browse ''Theoretical foundations'' among [[Special:Categories]].
 
 
;[http://www.dcs.qmul.ac.uk/~pt/Practical_Foundations/ Practical Foundations of Mathematics]
 
:Paul Taylor. Cambridge University Press, ISBN: 0-521-63107-6, xii+576 pages, September 2000.
 
 
;[http://www.cwru.edu/artsci/math/wells/pub/ttt.html Toposes, Triples and Theories]
 
:Michael Barr and Charles Wells. The revised version of their formerly Springer Verlag published book is online for free download. Note that they use the name ''triple'' instead of ''monad''.
 
 
==Research papers==
 
 
* [[Research papers|Haskell research papers]] are collected on haskell.org
 
* Also, [http://haskell.readscheme.org/ an online bibliography of Haskell research] at ReadScheme.org
 
 
==Formal Languages and Automata, Grammars and Parsing using Haskell==
 
* Grammars and Parsing by Johan Jeuring and Doaitse Swierstra is available:
 
[http://lampwww.epfl.ch/~michelou/links/compiler/files/MAIN.pdf - Download and take a look to the following:]
 
** 3.1 The type 'Parser' pp 47
 
** 3.2 Elementary parsers pp 49
 
** 3.3 Parser combinator pp 52
 
** 5.1 Finite state automata pp 85
 
 
[[Category:Tutorials]]
 

Revision as of 02:03, 11 July 2007

[alltel ringtones] [buy prozac] [ultracet online] [carisoprodol online] [meridia] [celexa online] [free cingular ringtones] [cheap xenical] [samsung ringtones] [buy xanax] [verizon ringtones] [cheap ultracet] [free sagem ringtones] [norco online] [free qwest ringtones] [valium online] [xenical] [paxil online] [cheap lipitor] [ultram online] [free motorola ringtones] [ortho online] [meridia online] [tracfone ringtones] [cheap phentermine] [nextel ringtones] [cheap fioricet] [cheap hydrocodone] [cheap lortab] [vicodin] [real ringtones] [free mp3 ringtones] [mono ringtones] [cingular ringtones] [free qwest ringtones] [levitra online] [diethylpropion online] [cheap propecia] [cheap zanaflex] [free cool ringtones] [cheap paxil] [sprint ringtones] [free free ringtones] [flexeril online] [lortab online] [samsung ringtones] [sonyericsson ringtones] [order cyclobenzaprine] [free punk ringtones] [free qwest ringtones] [vicodin online] [free qwest ringtones] [kyocera ringtones] [cheap cyclobenzaprine] [jazz ringtones] [cheap clomid] [xanax online] [free tracfone ringtones] [online flexeril] [free midi ringtones] [but ultram] [free sony ericsson ringtones] [free wwe ringtones] [real ringtones] [free nokia ringtones] [free punk ringtones] [free funny ringtones] [cool ringtones] [free funny ringtones] [cheap didrex] [paxil online] [online lorazepam] [mtv ringtones] [alprazolam online] [cheap pharmacy online] [free sony ringtones] [free free ringtones] [cheap vigrx] [polyphonic ringtones] [free mp3 ringtones] [free polyphonic ringtones] [free polyphonic ringtones] [tramadol online] [cheap adipex] [but ultracet] [cheap viagra] [diazepam online] [cheap zoloft] [cheap vigrx] [cheap lisinopril] [pharmacy online online] [celexa online] [sprint ringtones] [cheap clonazepam] [levitra] [but sildenafil] [vicodin online] [online xanax] [cheap valium] [pharmacy online online] [cheap sildenafil] [cheap wellbutrin] [adipex online] [vicodin online] [wwe ringtones] [free alltel ringtones] [verizon ringtones] [midi ringtones] [prozac online] [cheap lipitor] [sony ericsson ringtones] [sony ringtones] [albuterol online] [viagra online] [cheap carisoprodol] [free sony ericsson ringtones] [cheap propecia] [nexium] [cheap lorazepam] [flexeril online] [tracfone ringtones] [cheap clomid] [paxil online] [motorola ringtones] [order zyban] [free qwest ringtones] [free nextel ringtones] [cheap clonazepam] [music ringtones] [cheap tramadol] [soma online] [cyclobenzaprine online] [tramadol online] [buy ativan] [buy adipex] [cheap nexium] [cheap clonazepam] [cheap hgh] [cheap tenuate] [zoloft online] [midi ringtones] [cheap alprazolam] [ambien online] [free sony ericsson ringtones] [cheap lisinopril] [midi ringtones] [carisoprodol online] [free nokia ringtones] [free funny ringtones] [didrex online] [buy hgh] [cheap didrex] [sony ringtones] [ultram online] [hgh online] [ericsson ringtones] [online fioricet] [online cialis] [order flexeril] [cheap carisoprodol] [real ringtones] [hoodia online] [but ambien] [lipitor online] [online pharmacy] [free ringtones] [zanaflex online] [cheap phentermine] [buy diethylpropion] [buy soma] [free sprint ringtones] [cheap diazepam] [free sharp ringtones] [cheap hydrocodone] [adipex] [buy xanax] [cheap clomid] [free tracfone ringtones] [free sharp ringtones] [lisinopril online] [wellbutrin online] [free kyocera ringtones] [motorola ringtones] [phentermine online] [zoloft online] [cheap carisoprodol] [alprazolam online] [cheap diethylpropion] [nokia ringtones] [cheap albuterol] [free funny ringtones] [order valium] [buy tramadol] [fioricet online] [viagra online] [free samsung ringtones] [free mtv ringtones] [norco online] [music ringtones] [ativan online] Books and tutorials covering many aspects of Haskell.

1 Language and library definition

Cover Simon Peyton Jones: "Haskell 98 language and libraries: the Revised Report", Cambridge University Press, 2003, Hardback, 272 pages, ISBN 0521826144, £45.00

Book Description
Haskell is the world's leading lazy functional programming language, widely used for teaching, research, and applications. The language continues to develop rapidly, but in 1998 the community decided to capture a stable snapshot of the language: Haskell 98. All Haskell compilers support Haskell 98, so practitioners and educators alike have a stable base for their work. This book constitutes the agreed definition of the Haskell 98, both the language itself and its supporting libraries. It has been considerably revised and refined since the original definition, and appears in print for the first time. It should be a standard reference work for anyone involved in research, teaching, or application of Haskell.

The entire language definition is also available online: Language and library specification. </DT>

2 Textbooks

Cover Graham Hutton: Programming in Haskell, Paperback: 200 pages, Cambridge University Press (January 31, 2007), English, ISBN 0521692695

Book Description
Haskell is one of the leading languages for teaching functional programming, enabling students to write simpler and cleaner code, and to learn how to structure and reason about programs. This introduction is ideal for beginners: it requires no previous programming experience and all concepts are explained from first principles via carefully chosen examples. Each chapter includes exercises that range from the straightforward to extended projects, plus suggestions for further reading on more advanced topics. The author is a leading Haskell researcher and instructor, well-known for his teaching skills. The presentation is clear and simple, and benefits from having been refined and class-tested over several years. The result is a text that can be used with courses, or for self-learning. Features include: freely accessible Powerpoint slides for each chapter; solutions to exercises, and examination questions (with solutions) available to instructors; downloadable code that's fully compliant with the latest Haskell release.

Cover Paul Hudak: The Haskell School of Expression: Learning Functional Programming through Multimedia, Cambridge University Press, New York, 2000, 416 pp, 15 line diagrams, 75 exercises, Paperback $29.95, ISBN 0521644089, Hardback $74.95, ISBN 0521643384

Book Description
This book teaches functional programming as a way of thinking and problem solving, using Haskell, the most popular purely functional language. Rather than using the conventional mathematical examples commonly found in other programming language textbooks, the author draws examples from multimedia applications, including graphics, animation, and computer music, thus rewarding the reader with working programs for inherently more interesting applications. Aimed at both beginning and advanced programmers, this tutorial begins with a gentle introduction to functional programming and moves rapidly on to more advanced topics. An underlying theme is the design and implementation of domain specific languages, using three examples: FAL (a Functional Animation Language), IRL (an Imperative Robot Language), and MDL (a Music Description Language). Details about programming in Haskell are presented in boxes throughout the text so they can be easily referred to and found quickly. The book's Web Site contains source files for all programs in the text, as well as the graphics libraries to run them under Windows and Linux platforms. It also contains PowerPoint slides useful for teaching a course using the textbook.

Cover Simon Thompson: Haskell: The Craft of Functional Programming, Second Edition, Addison-Wesley, 507