English | MP4 | AVC 1920×1080 | AAC 44KHz 2ch | 12h 34m | 2.07 GB
Learn Haskell by doing Haskell projects! In this book, you’ll get practical experience writing Haskell code and applying functional programming to actual development challenges.
In Learn Haskell by Example, you’ll build your Haskell skills by working through hands-on challenges and conundrums. You’ll learn to look at each project through a Haskell lens, and then solve it using features like lazy evaluation, immutable data structures, and monads.
In Learn Haskell by Example you will learn how to:
- Use Haskell for daily programming tasks
- Effectively apply functional concepts
- Avoid common beginner pitfalls of Haskell
- Apply abstract concepts in the Haskell language
- Debug and profile Haskell applications
- Improve the performance of Haskell applications
Haskell is an amazing choice for applications that need an extra guarantee of safety, such as in smart contracts, data intensive applications, and large scale distributed systems. In this book, you’ll see just how practical Haskell can be for creating programs by building your own engaging projects! Learn how to structure real-world applications, how to work with the Haskell tool chain effectively, and what to look out for when writing critical sections in the program’s logic. Best of all, each project in this book is fully extensible and customizable so you can keep tinkering with your favorites!
Programmers spend a lot of time debugging and refactoring code, reading comments and documentation, and trying to make sense out of complex designs. Haskell, a powerful, beautiful, and challenging functional programming language, promises a different path. By focusing your attention on simple functions, clearly-defined behaviors, and the right high-level abstractions, Haskell disallows the dangerous behaviors that usually lead to bugs and crashes.
Learn Haskell by Example teaches you to build applications in Haskell by designing and coding fun and engaging projects. In this easy-to-follow guide, you’ll create a domain specific language for music, an image processing library, and more! You’ll learn Haskell from the ground-up with a focus on important concepts like function design, composition, and data immutability. Each project gives you a new insight into how to think in Haskell and helps you understand why many Haskell developers say they will never use another language again.
What’s Inside
- Use Haskell for daily programming tasks
- Purely functional programming
- Avoid common Haskell pitfalls
Table of Contents
1 Chapter 1. Introduction
2 Chapter 1. The pure functional way
3 Chapter 1. Usage of abstraction
4 Chapter 1. The things we learn
5 Chapter 1. Summary
6 Chapter 2. Ancient secret keeping on modern machines
7 Chapter 2. Typical types and fantastic functions
8 Chapter 2. A little help with the alphabet
9 Chapter 2. Rotating the wheel
10 Chapter 2. Transforming a string
11 Chapter 2. Summary
12 Chapter 3. Every line counts
13 Chapter 3. Pure functions inside of actions
14 Chapter 3. Reading from the environment
15 Chapter 3. Example Reading and printing a command line argument
16 Chapter 3. Summary
17 Chapter 4. Line numbering tool
18 Chapter 4. Parametrized behavior in higher-order functions
19 Chapter 4. Algebraic data structures as an encoding of possibilities
20 Chapter 4. From library to executable
21 Chapter 4. Summary
22 Chapter 5. Words and graphs
23 Chapter 5. Encapsulating implementations
24 Chapter 5. Using and reusing code
25 Chapter 5. Parameterizing transformations
26 Chapter 5. Summary
27 Chapter 6. Solving the ladder game
28 Chapter 6. Type variable scoping
29 Chapter 6. Improving performance with hashmaps
30 Chapter 6. Summary
31 Chapter 7. Working with CSV files
32 Chapter 7. Smart constructors
33 Chapter 7. Using type classes
34 Chapter 7. Creating a new type class
35 Chapter 7. Summary
36 Chapter 8. A tool for CSV
37 Chapter 8. Folding data structures
38 Chapter 8. Printing a CSV
39 Chapter 8. A simple command-line parser
40 Chapter 8. Summary
41 Chapter 9. Quick checks and random tests
42 Chapter 9. Randomized testing
43 Chapter 9. The QuickCheck testing framework
44 Chapter 9. Generating random values for testing
45 Chapter 9. Practical usage of property testing
46 Chapter 9. Summary
47 Chapter 10. Digital music box
48 Chapter 10. Using infinite lists
49 Chapter 10. Controlling synthesis
50 Chapter 10. Note models
51 Chapter 10. Summary
52 Chapter 11. Programming musical compositions
53 Chapter 11. Interpreting structures
54 Chapter 11. Implementing a domain-specific language
55 Chapter 11. Summary
56 Chapter 12. Parsing pixel data
57 Chapter 12. Parsing on a bigger scale
58 Chapter 12. Summary
59 Chapter 13. Parallel image processing
60 Chapter 13. Validation of parsed data
61 Chapter 13. A generic algorithm for image conversion
62 Chapter 13. Using parallelism to transform data
63 Chapter 13. Summary
64 Chapter 14. Files and exceptions
65 Chapter 14. Reading bytes from a file
66 Chapter 14. Working with the filesystem and exceptions
67 Chapter 14. Throwing and catching exceptions
68 Chapter 14. Summary
69 Chapter 15. Transformers for synchronizing
70 Chapter 15. Implementing an application
71 Chapter 15. Providing a CLI
72 Chapter 15. Summary
73 Chapter 16. JSON and SQL
74 Chapter 16. Deriving type classes with Generic
75 Chapter 16. Using a SQLite database
76 Chapter 16. Summary
77 Chapter 17. APIs using Servant
78 Chapter 17. Running the application
79 Chapter 17. Deriving a client
80 Chapter 17. Summary
81 Appendix A. The Haskell Toolchain
82 Appendix A. Installing Haskell tools
83 Appendix A. All in one Docker file
84 Appendix B. Lazy evaluation
85 Appendix B. How it works
86 Appendix B. Leaking space and time
87 Appendix B. undefined and newtype
Resolve the captcha to access the links!