First step: intro, traits, classes, objects, params
Step 2: type arguments
Lambda syntax, type alias
Replace stragegies by functions -> we just went from objects to functions
Limitation of _ notation for lambdas
Functions vs methods
First implementation of assignment-1
Second implementation of assignment-1 with generic type
Third implementation of assignment-1 using two generic types (input: T and output: S)
Fourth implementation of assignment-1 using multiple argument lists leading to type inference (no need to specify type params)
Mutability of refernce and data-structures explained
Recursive implementation for transform method of assignment-1
Tail recursive implementation of transform from assignment-1
Lazy evaluation with currying for more syntactic sugar
Partial evaluation of function, tuples
Renamed folder to day1, start of object-oriented stuff
Constructors, scopes, private vars, getters and setters
Companion objects, extends(inheritance)
Traits, extends and override
Dummy example tests