Learn You a Haskell for Great Good! - Miran Lipovaca [183]
as functions, Defining a New Data Type, Shaping Up, Exporting Our Shapes in a Module
exporting, Improving Shape with the Point Data Type
for Either a b type, Parameterizing Type Synonyms
parameters, Type Parameters
using .. (dots) with, Improving Shape with the Point Data Type
using with shapes, Defining a New Data Type
vs. type constructors, Vector von Doom, Parameterizing Type Synonyms
values with contexts, using monads with, Upgrading Our Applicative Functors
values. See also log values, Starting Out, Baby's First Functions, Type Classes 101, The Ord Type Class, Lambdas, Let's Find Some Cool Numbers, Monoids to the Rescue, Error Error on the Wall, Error Error on the Wall, Zippers, A Trail of Breadcrumbs
adding context of failure to, Error Error on the Wall
applying functions to, A Trail of Breadcrumbs
attaching monoids to, Monoids to the Rescue
concept of, Zippers
expressing as strings, The Ord Type Class
mapping keys to, Let's Find Some Cool Numbers
reducing data structures to, Lambdas
returning in functions, Baby's First Functions
testing for equality, Starting Out
using Ord type class with, Type Classes 101
variables, Pattern Matching with Lists and List Comprehensions, Pattern Matching with Lists and List Comprehensions, Pattern Matching with where
binding to, Pattern Matching with Lists and List Comprehensions
binding via let expressions, Pattern Matching with where
vectors, Tuples, Tuples, Should We Parameterize Our Car?
changing to tuples, Tuples
implementing types for, Should We Parameterize Our Car?
| (vertical pipe), Guards, Guards!, Making Our Own Types and Type Classes, Making Our Own Types and Type Classes, Vector von Doom
using with data keyword, Making Our Own Types and Type Classes
using with data types, Vector von Doom
using with guards, Guards, Guards!
vertical pipe (|), Guards, Guards!, Making Our Own Types and Type Classes, Making Our Own Types and Type Classes, Vector von Doom
using with data keyword, Making Our Own Types and Type Classes
using with data types, Vector von Doom
using with guards, Guards, Guards!
W
when I/O function, print
where bindings vs. let expressions, Pattern Matching with where
where blocks, functions in, Pattern Matching with where
where keyword, Guards, Guards!, where's Scope, where's Scope
pattern matching with, where's Scope
scope of, where's Scope
while loops, Randomness and I/O
withFile function, using in I/O, Reading and Writing Files
words, counting, Solving Problems with Module Functions
words.txt file, creating and saving, Transforming Input
writeFile function, It's Bracket Time
Writer monad, For a Few Monads More, Writer? I Hardly Knew Her!, Writer? I Hardly Knew Her!, Writer? I Hardly Knew Her!, The Writer Type, Using do Notation with Writer, Adding Logging to Programs, Adding Logging to Programs, Inefficient List Construction, Using Difference Lists, The State Monad
adding logging to programs, Using do Notation with Writer
applyLog function, Writer? I Hardly Knew Her!
changing log type, Writer? I Hardly Knew Her!
comparing performance, Using Difference Lists
difference lists, Inefficient List Construction
inefficient list construction, Adding Logging to Programs
using do notation with, The Writer Type
using monoids with, Writer? I Hardly Knew Her!, Adding Logging to Programs
vs. State monad, The State Monad
Writer type, Monoids to the Rescue
writing files, Reading and Writing Files
X
x:xs pattern, using, Pattern Matching with Tuples
Y
YEAH! alert, A Yes-No Type Class, A Yes-No Type Class
YesNo type class, A Yes-No Type Class
Z
zip function, Using Tuples, take, take
using recursively, take
using with pairs, Using Tuples
zip lists, Zip Lists, Wrapping an Existing Type into a New Type
zippers. See also data structures; trees, Going Back Up, Going