Workshops
Courses
Books
Articles
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 parameters
Exercise: Logger
A birds-eye view of Arrow
Functions and Arrow Core
Error Handling
Data Immutability with Arrow Optics
Exercise: UserService