WEBRip | MP4/AVC, ~281 kb/s | 1280 x 720 | English: AAC, 54.0 kb/s (2 ch), 48.0 KHz | 275 MBGenre: Development / Web Development | Language: English | +Project Files
Along with being tried and trusted, functional programming is one of the biggest current trends in programming. Its focus on side-effect free code, unadorned data manipulation and simple structures promote a coding style that reduces bugs, and lifts the level of abstraction to a point where we can achieve more with less code. All topics discussed in the course can be used to various degrees in any code-base – even if your daily work is with a huge object-oriented project, the techniques discussed will certainly be useful.
Right from the start we'll dive into the implementation of a text-based adventure game. We will also see how function composition is used to solve specific problems in this domain by combining highly generic functions. We learn function programming techniques that help improve asynchronous code used to load the game from disk.
Later we'll become acquainted with a few other examples as well, as we learn about designing applications around an immutable data structure. And we end our journey with a discussion of recursion and how it relates to lazy data structures, and show examples of using previously discussed techniques on infinite data sets.
What am I going to get from this course?
What is the target audience?
- Over 22 lectures and 2.5 hours of content!
- Explore higher-order functions, what they are and how to work with them
- Solve issues related to asynchronous methods effectively by using promises
- Use a library such as immutableJS to implement immutability
- Implement immutability with Facebook’s React for super fast user interfaces
- Combine a “functional core” to build a web application where most of the code is functional
- Make efficient use of recursion with big data sets to make code easier to visualize
Section 1: Introduction to Functional Programming
Lecture 1 The Course Overview 03:54
Understand the scope of the course and get a feeling of what will be covered and when.
Lecture 2 What Is Functional Programming? 04:07
Understand the basic premise of functional programming and how it is helpful.
Lecture 3 Your First Functional Programming Concepts 03:33
Ease into functional programming with some important core concepts.
Section 2: Higher Order Functions
Lecture 4 First-class Functions Preview
Define the concept of "first-class" functions.
Lecture 5 Passing Functions as Arguments 08:31
Preparing the AST for building the view.
Lecture 6 Returning Functions 04:39
Applying a changeset to a user.
Section 3: Functional Asynchrony
Lecture 7 Callbacks Preview
Creating new users.
Lecture 8 Continuation Passing Style 06:33
Applying iterator methods on async operations.
Lecture 9 Promises 10:33
Parsing room files with promises.
Section 4: Function Composition
Lecture 10 Partial Function Application Preview
Loading and parsing all rooms at boot. c
Lecture 11 Currying 08:44
Loading and parsing rooms with currying instead of partial application.
Lecture 12 Composition 07:01
Finding a specific room.
Section 5: Immutability
Lecture 13 What Is Immutability? Preview
Explain the difference between mutable and immutable types.
Lecture 14 Working with Immutability 08:59
Developing a Minesweeper data model.
Lecture 15 Immutability in the UI 06:00
Adding undo to Minesweeper.
Lecture 16 Mechanics and Performance 06:59
Investigating how immutability can boost performance.
Section 6: Recursion
Lecture 17 Recursive Thinking Preview
Lecture 18 A Recursive AST Parser 07:15
Implementing the adventure game parser.
Lecture 19 Trampolining 04:47
Eliminating recursion without losing the mental model.
Section 7: Laziness
Lecture 20 Lazy Evaluation Preview
Lazily evaluating a map and a filter.
Lecture 21 Lazy Sequences 05:45
Generalizing lazy sequences.
Lecture 22 Infinite Sequences 05:11