Skip to content

Functional Programming Questions

Chris Denniston edited this page Dec 1, 2015 · 6 revisions

Functional Programming Questions

This Wiki contains a list of questions that cover basic to intermediate knowledge in the domain of functional programming. In other words, it lists the questions a programmer should be able to answer in order to claim proficiency in functional programming.

  1. How is functional programming different from imperative programming?
  2. What is referential transparency?
  3. What advantages follow from the unique characteristics of functional programming?
  4. Characterize the types of problems that are best solved in the functional style?
  5. Characterize the types of problems that are poorly suited to the functional style?
  6. In functional programming, what are "pure" functions?
  7. Is the absence of side effects all that is necessary for a function to be considered "pure"?
  8. If a function is an idempotent function necessarily "pure"? If no, give an example of a function that is idempotent but not "pure".
  9. What is the difference between a list and a tuple?
  10. Show the type declaration for a polymorphic function in Haskell.
  11. What does it mean for a programming language to have first-class functions?
  12. What is a higher-order function? Give an example of a higher-order function.
  13. What are closures? Give an example of a closure in some language.
  14. What is a lambda expression (aka anonymous function)? Give an example.
  15. Give an example of type inference.
  16. What are curried functions? Give an example of how curried functions make programming easier or more capable.
  17. [Important???] What are monads? Give an example of how monads make programming easier or more capable. [Maybe more important to explain Functor/Applicative/Monad. Monads are more specific to Haskell than general functional though]
  18. Describe some alternatives to iteration.
  19. What is function composition and how may it be used?

Clone this wiki locally