Philipp Haller
Principles of Scala
• Integration of object-oriented and functional
programming
• Functions are objects
• First-class, higher-order, curried, partial, etc.
• First-class modules = objects
• Abstract type members, path-dependent types
• Generic programming
• Example: “type classes = objects + implicits”