Transcript from the "Wrapping Up" Lesson
>> Kyle Simpson: All right, everybody take a deep breath with me. That was quite a set of stuff to go through in the course? I am really please that you stuck it out with us and I just want to briefly recap and then we are gonna close for the day [COUGH].
[00:00:16] We started out this course after motivating why functional programming. And I wanna reiterate what I said at the very beginning, why functional programming? Because if you can't trust the code that you're writing you don't understand it and vice versa. So we want to strive to write code that is provable, that is trustable.
[00:00:35] And code that makes sense, that's declarative, it focuses more on the what not as much on the how. That's our goal in over all programming and I think functional programming is a really powerful tool for that. So we looked at a variety of different tools that help us with that.
[00:00:51] We saw that avoiding side effects creating pure functions that have no side effects. And indeed, using point freestyle to not have as many functions cluttering up the code, that goes a long way to setting up the right foundation for us to approach functional programming. Composition is how we take all these different Lego pieces that we build in our app and we put them together in very clean ways.
[00:01:15] In a particular, composition is about modeling the flow of data across a series of operations. And then we talked about immutability. It's important to maintain a sense that values that could mutate, don't mutate because that helps create more predictability for every line of code. Remember, we talked about purity is really a level of confidence and that's meta point about all of functional programming.
[00:01:41] The choices that we make about how we style our code either add to or detract from that confidence level that people could have that they know what that piece of code is gonna do. And we should be doing everything we can. Using every tool we have available to us, to give them more confidence and they understand what they're reading.
[00:02:02] Closure, one of the most fundamental concepts in all of programming but certainly right at the very heart of what we do in functional programming. It enables virtually every other pattern that we did. You saw closure being used over and over and over again. You have to just get natural at it.
[00:02:18] And I want you to be able to answer that question. When somebody says, hey what's closure? You should be able to fire right back, closure is when a function remembers and as lexical variables when executed in a different scope. That's the way to make sure you have that within your grasp, you wanna have mastery over that topic.
[00:02:37] Lists and indeed data structure operations, not only are they just about lists of numbers as most examples but we can adapt these operations like map filters and reduce. We can adapt them to objects. We can adapt them to trees. And indeed, we can adapt them to our own code base itself.
[00:02:55] That the statements within our code can be a data structure on which we can operate. And finally, observables allow us to map all of map there is pun for you. Now all of what we've learned about functional programming from the eager synchronous stuff to overtime asynchronous.
>> Kyle Simpson: You now have a pretty good set of climbing tools.
[00:03:21] And you've started to make your way up that cliff face of the mountain. And the climb may at times be difficult, it certainly has been for me but I just wanna encourage you and cheer you on that this journey is worth it. And I spent many, many years just running up against the face of this cliff having no idea how to climb it, take a few steps and then fall down and get frustrated.
[00:03:46] I hope, and I have endeavored to give you a better path of that mountain. Hopefully, that inspires you that this journey it's finally worth taking. And [COUGH] I really do believe that we should take to heart that challenge. The code should be about communicating with other people. This is just one set of techniques that allows us to do that better.