Questions for Functional Programming

1. What is functional programming, and how does Kotlin support it?

2. What are higher-order functions in Kotlin, and why are they important?

3. What are lambda expressions in Kotlin, and how are they used?

4. What is the `it` keyword in Kotlin lambdas, and when is it used?

5. What are inline functions, and how do they improve performance in Kotlin?

6. What is the difference between `map` and `flatMap`?

7. What is the role of immutability in functional programming, and how does Kotlin support it?

8. How do Kotlins `filter` and `filterNot` functions work in functional programming?

9. What are function references in Kotlin, and how are they used?

10. What are anonymous functions in Kotlin, and how are they different from lambdas?

11. What is the `let` function in Kotlin, and how does it fit into functional programming?

12. How does the `run` function differ from `let` in Kotlin?

13. What is the `apply` function in Kotlin, and when should you use it?

14. What is the difference between `fold` and `reduce` in Kotlin collections?

15. How does Kotlin handle function composition with functional programming?