It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never
Learn You a Haskell for Great Good!: A Beginner's Guide
โ Scribed by Miran Lipovaca
- Publisher
- No Starch Press
- Year
- 2011
- Tongue
- English
- Leaves
- 289
- Edition
- 1
- Category
- Library
No coin nor oath required. For personal study only.
โฆ Synopsis
It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible.You'll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you've got the basics down, the real black belt master-class begins: you'll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you've only read about in storybooks.As you work your way through the author's imaginative (and occasionally insane) examples, you'll learn to: Laugh in the face of side effects as you wield purely functional programming techniques Use the magic of Haskell's "laziness" to play with infinite sets of data Organize your programs by creating your own types, type classes, and modules Use Haskell's elegant input/output system to share the genius of your programs with the outside world Short of eating the author's brain, you will not find a better way to learn this powerful language than reading Learn You a Haskell for Great Good! Excerpt from the Introduction Haskell is fun, and thatโs what itโs all about! This book is aimed at people who have experience programming in imperative languagesโsuch as C++, Java, and Pythonโand now want to try out Haskell. But even if you donโt have any significant programming experience, Iโll bet a smart person like you will be able to follow along and learn Haskell. My first reaction to Haskell was that the language was just too weird. But after getting over that initial hurdle, it was smooth sailing. Even if Haskell seems strange to you at first, donโt give up. Learning Haskell is almost like learning to program for the first time all over again. Itโs fun, and it forces you to think differently. NOTE If you ever get really stuck, the IRC channel #haskell on the freenode network is a great place to ask questions. The people there tend to be nice, patient, and understanding. Theyโre a great resource for Haskell newbies. So, What's Haskell? Haskell is a purely functional programming language. In imperative programming languages, you give the computer a sequence of tasks, which it then executes. While executing them, the computer can change state. For instance, you can set the variable a to 5 and then do some stuff that might change the value of a. There are also flow-control structures for executing instructions several times, such as for and while loops. Purely functional programming is different. You donโt tell the computer what to doโyou tell it what stuff is. For instance, you can tell the computer that the factorial of a number is the product of every integer from 1 to that number or that the sum of a list of numbers is the first number plus the sum of the remaining numbers. You can express both of these operations as functions. > Read the Introduction (PDF) in its entirety.
โฆ Table of Contents
1.2 So what's Haskell?......Page 4
1.3 What you need to dive in......Page 5
2.1 Ready, set, go!......Page 7
2.2 Baby's first functions......Page 10
2.3 An intro to lists......Page 11
2.4 Texas ranges......Page 16
2.5 I'm a list comprehension......Page 17
2.6 Tuples......Page 19
3.1 Believe the type......Page 23
3.3 Typeclasses 101......Page 25
4.1 Pattern matching......Page 30
4.2 Guards, guards!......Page 34
4.3 Where!?......Page 35
4.4 Let it be......Page 37
4.5 Case expressions......Page 39
5.2 Maximum awesome......Page 41
5.3 A few more recursive functions......Page 42
5.4 Quick, sort!......Page 44
5.5 Thinking recursively......Page 46
6.1 Curried functions......Page 47
6.2 Some higher-orderism is in order......Page 49
6.3 Maps and filters......Page 51
6.4 Lambdas......Page 55
6.5 Only folds and horses......Page 56
6.6 Function application with \$......Page 60
6.7 Function composition......Page 61
7.1 Loading modules......Page 64
7.2 Data.List......Page 65
7.3 Data.Char......Page 75
7.4 Data.Map......Page 78
7.5 Data.Set......Page 82
7.6 Making our own modules......Page 84
8.1 Algebraic data types intro......Page 88
8.2 Record syntax......Page 91
8.3 Type parameters......Page 93
8.4 Derived instances......Page 97
8.5 Type synonyms......Page 101
8.6 Recursive data structures......Page 104
8.7 Typeclasses 102......Page 108
8.8 A yes-no typeclass......Page 112
8.9 The Functor typeclass......Page 115
8.10 Kinds and some type-foo......Page 118
9.1 Hello, world!......Page 122
9.2 Files and streams......Page 133
9.3 Command line arguments......Page 144
9.4 Randomness......Page 149
9.5 Bytestrings......Page 156
9.6 Exceptions......Page 159
10.1 Reverse Polish notation calculator......Page 166
10.2 Heathrow to London......Page 170
11.1 Functors redux......Page 178
11.2 Applicative functors......Page 186
11.3 The newtype keyword......Page 199
11.4 Monoids......Page 205
12 A Fistful of Monads......Page 218
12.1 Getting our feet wet with Maybe......Page 219
12.2 The Monad type class......Page 221
12.3 Walk the line......Page 223
12.4 do notation......Page 228
12.5 The list monad......Page 232
12.6 Monad laws......Page 238
13.1 Writer? I hardly know her!......Page 242
13.2 Reader? Ugh, not this joke again.......Page 251
13.3 Tasteful stateful computations......Page 253
13.4 Error error on the wall......Page 259
13.5 Some useful monadic functions......Page 260
13.6 Making monads......Page 271
14.1 Taking a walk......Page 276
14.2 A trail of breadcrumbs......Page 278
14.3 Focusing on lists......Page 282
14.4 A very simple file system......Page 284
14.5 Watch your step......Page 287
๐ SIMILAR VOLUMES
It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never
It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never
<h3>Kurzbeschreibung</h3><p>It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fund
Youll start with the kid stuff: basic syntax, recursion, types and type classes. Then once youve got the basics down, the real black belt master-class begins: youll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs youve only read about in storybooks.<
<DIV><p>It's all in the name: <i>Learn You a Haskell for Great Good!</i> is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a