-
Notifications
You must be signed in to change notification settings - Fork 1
Functional Programming Questions
Chris Denniston edited this page Dec 1, 2015
·
6 revisions
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.
- How is functional programming different from imperative programming?
- What is referential transparency?
- What advantages follow from the unique characteristics of functional programming?
- Characterize the types of problems that are best solved in the functional style?
- Characterize the types of problems that are poorly suited to the functional style?
- In functional programming, what are "pure" functions?
- Is the absence of side effects all that is necessary for a function to be considered "pure"?
- If a function is an idempotent function necessarily "pure"? If no, give an example of a function that is idempotent but not "pure".
- What is the difference between a list and a tuple?
- Show the type declaration for a polymorphic function in Haskell.
- What does it mean for a programming language to have first-class functions?
- What is a higher-order function? Give an example of a higher-order function.
- What are closures? Give an example of a closure in some language.
- What is a lambda expression (aka anonymous function)? Give an example.
- Give an example of type inference.
- What are curried functions? Give an example of how curried functions make programming easier or more capable.
- [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]
- Describe some alternatives to iteration.
- What is function composition and how may it be used?