A lot of Kotlin features can be traced back to functional programming languages, eg
- Heavy use of immutability-by-default and map, filter etc functions
 - Type inference
 - Data classes (which enable pattern matching)
 - Null safety and dealing with the absence of values
 
However, Kotlin is missing many incredibly useful data types that are ubiquitous in functional programming languages, eg Either, Try etc.