Table of contents : PART 1 INTRODUCING KOTLIN -- Kotlin: What and why -- Kotlin basics -- Defining and calling functions -- Classes, objects and interfaces -- Programming with Lambdas -- The Kotlin type system PART 2 EMBRACING KOTLIN -- Operator overloading and other conventions -- Higher-order functions: Lambdas as parameters and return values -- Generics -- Annotations and reflections -- DSL construction