Object Oriented Programming Functional Programming Concepts