This documents my solution to Haskell Book Exercises.
- All You Need is Lambda
- Hello, Haskell!
- Strings
- Basic datatypes
- Types
- Type classes
- More functional patterns
- Recursion
- Lists
- Folding lists
- Algebraic datatypes
- Signaling adversity
- Building projects
- Testing
- Monoid, Semigroup
- Functor
- Applicative
- Monad
- Applying structure
- Foldable
- Traversable
- Reader
- State
- Parser combinators
- Composing types
- Monad transformers
- Nonstrictness
- Basic libraries
- IO
- When things go wrong
- Final project
- SayHello
- Exercises: Comprehension Check
- Exercises: Parentheses and Association
- Exercises: Heal The Sick
- Exercises: A Head Code
- Rewrite with Where
- Chapter 2 Exercises
- WaxOn.hs
- Exercises: Scope
- Exercises: Syntax Errors
- PrintBroken.hs
- Chapter 3 Exercises
- Chapter 3 Exercises: Curry is Awesome
- Chapter 3 Exercises: Third Letter
- Chapter 3 Exercises: Letter Index
- Chapter 3 Exercises: Reverse
- Exercises: Mood Swing
- Exercises: Syntax Errors
- Chapter 4 Exercises
- Chapter 4 Exercises: #8: isPalindrome
- Chapter 4 Exercises: #9: myAbs
- Exercises: Type Matching
- Exercises: Type Arguments
- Exercises: Parametricity
- Exercises: Apply Yourself
- Chapter 5 Exercises
- Chapter 5 Exercises: Determine the type
- Chapter 5 Exercises: Does it compile
- Chapter 5 Exercises: Type Signature
- Chapter 5 Exercises: Write The Function
- Chapter 5 Exercises: Sing
- Chapter 5 Exercises: Sing 2
- Chapter 5 Exercises: Arith3Broken
- Chapter 5 Exercises: Type-Kwon-Do
- Exercises: Eq Instances
- Exercises: Tuple Experiment
- Exercises: Will They Work
- Chapter 6 Exercises
- Chapter 6 Exercises: Does It Typecheck
- Chapter 6 Exercises: Match The Types
- Chapter 6 Exercises: Type-Kwon-Do Two: Electric Typealoo
- Exercises: Grab Bag
- Exercises: Variety Pack
- Exercises: Case Practice
- Exercises: Artful Dodgy
- Exercises: Guard Duty
- Exercises: Arith 2
- Chapter 7 Exercises
- Chapter 7 Exercises: Let's Write Code
- Chapter 7 Exercises: Arith4 Version A
- Chapter 7 Exercises: Arith4 Version B
- Chapter 7 Exercises: Arith4 Version C
- Exercises: Intermission
- Chapter 8 Exercises
- Chapter 8 Exercises: Reviewing Currying
- Chapter 8 Exercises: Recursion
- Chapter 8 Exercises: Fixing DividedBy
- Chapter 8 Exercises: McCarthy91 Function
- Chapter 8 Exercises: Numbers into Words
- Exercises: safeHead
- Exercise: EnumFromTo
- Exercise: Fearful Symmetry
- Exercise: PoemLines
- Exercise: Comprehend Thy Lists
- Exercise: Square Cube
- Exercise: Bottom Madness
- Exercise: More Bottoms
- Exercise: More Bottom - #6
- Exercise: Filtering
- Exercise: Zipping
- Chapter 9 Exercises: Data Char
- Chapter 9 Exercises: Cipher
- Chapter 9 Exercises: Standard Functions
- Exercises: Understanding Folds
- Exercises: Database Processing
- Exercises: Scan
- Chapter 10 Exercises: Warm Up
- Chapter 10 Exercises: Rewriting Functions
- Exercises: Dog Types
- Exercises: Vehicles
- Exercises: Cardinality
- Exercises: For Example
- Exercises: Logic Goats
- Exercises: Pity the Bool
- Record Syntax
- Exercises: How Does Your Garden Grow?
- Exercises: Programmers
- Exponentiation in what order?
- Exercises: The Quad
- Exercises: BinaryTree
- Chapter 11 Exercises
- Chapter 11 Exercises: Ciphers
- Chapter 11 Exercises: As Patterns and Language Exercise
- Chapter 11 Exercises: Phone Exercise
- Chapter 11 Exercises: Hutton's Razor
- Chapter 12 Exercises: Determine The Kinds
- Chapter 12 Exercises: Determine The Kinds
- Chapter 12 Exercises: String Processing
- Chapter 12 Exercises: Validate The Word
- Chapter 12 Exercises: Its Only Natural
- Chapter 12 Exercises: Small Library for Maybe
- Chapter 12 Exercises: Small Library for Either
- Chapter 12 Exercises: Write your own iterate and unfoldr
- Chapter 12 Exercises: Finally something other than a list!
- Intermission: Check your understanding
- Chapter 13 Exercises: Hangman
- Chapter 13 Exercises: Cipher
- Chapter 13 Exercises: Palindrome
- Chapter 13 Exercises: Exercise 4 - ValidatePerson
- Intermission: Short Exercise
- Morse Code
- Chapter 14 Exercises: WordNumber
- Chapter 14 Exercises: Using QuickCheck
- Chapter 14 Exercises: Failure
- Chapter 14 Exercises: Idempotence
- Chapter 14 Exercises: Make a Gen random generator for the datatype
- TODO: Chapter 14 Exercises: Hangman testing
- Chapter 14 Exercises: Validating ciphers
- Exercise: Optional Monoid
- Madness
- Exercise: Maybe Another Monoid
- Chapter 15 Exercises: Semigroup
- Chapter 15 Exercises: Validation
- Chapter 15 Exercises: Monoid
- Chapter 15 Exercises: Mem
- Exercises: Be Kind
- Typecheck
(fmap.fmap)
- ReplaceExperiment
- Exercises: Heavy Lifting
- Exercises: Instances of Func
- Exercises: Possibly
- Short Exercise
- Chapter 16 Exercises