Functional Kotlin

Our special learning place

Introduction to functional programming with Kotlin
Why do we need to use functions as objects?
Function types
Anonymous functions
Lambda expressions
Exercise: Function types and literals
Exercise: Observable value
Function references
Exercise: Inferred function types
Exercise: Function references
SAM Interface support in Kotlin
Inline functions
Exercise: Inline functions
joinToString
Collection processing
Exercise: Implement map
Exercise: Optimize collection processing
fold
withIndex and indexed variants
take, takeLast, drop, dropLast and subList
Exercise: Adding element at position
Getting elements at certain positions
Exercise: Implement shop functions
partition
Associating to a map
Exercise: Prime access list
Sorting: sorted, sortedBy and sortedWith
Exercise: Top articles
Exercise: Refactor collection processing
zip and zipWithNext
Exercise: Passing students list
Exercise: Best students list
Exercise: Functional Quick Sort
Exercise: Powerset
Exercise: All possible partitions of a set
Sequences
Exercise: Understanding sequences
Type Safe DSL Builders
Exercise: HTML table DSL
Exercise: Creating user table row
Scope functions
Exercise: Using scope functions
Exercise: orThrow
Context receivers
Exercise: Logger
A birds-eye view of Arrow
Functions and Arrow Core
Error Handling
Data Immutability with Arrow Optics