In designing complex systems, it's important to break the big problem down
into smaller and smaller pieces. We've see that idea again and again
throughout the course. But in the next few videos, we're
going to look at another idea for managing the complexity of big systems.
This idea has to do with reducing the amount of repetition in our code.
It's a concept called abstraction, and the way it's going to work, is that we're
going to take function definitions, cases where we have two or more examples of
very similar functions and pull out from them, a more general function, which will
let us later plug in the details of the different functions.
So we're going to get less code, and more of our code will be more general or more
abstract. It's going to be kind of fun, and what's
going to happen here is that all of this discipline you've learned about type
comments and templates and template rules, well all of that's going to pay
off in a really big way in these videos.