Abstraction is a way to do decomposition productively by changing the level of detail to be considered.
There are four kinds of abstractions:
- Procedural abstraction: Introduce new operations
- Data abstraction: Introduce new data types
- Iteration abstraction: Iterate over new items in a collection without revealing details of how items are obtained
- Type hierarchy: Abstract from individual types to families of related type
Procedural Abstraction