Table of contents : Making programs safer -- Functional programming in Kotlin : an overview -- Programming with functions -- Recursion, corecursion, and memoization -- Data handling with lists -- Dealing with optional data -- Handling errors and exceptions -- Advanced list handling -- Working with laziness -- More data handling with trees -- Solving problems with advanced trees -- Functional input/output -- Sharing mutable states with actors -- Solving common problems functionally.