Functional Proframming Flashcards

1
Q

Describe Functional Programming (FP)

A

Applying pure functions in sequence to solve complex problems. Functions take input value and product output value without being affected by the program.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a pure function?

A
  • The same input of a function will always return the same output.
  • Immutable variables. No input to a function is altered, but can be copied, then altered and returned.
  • No side-effects… Really though, its minimize side effects - (A) Limit access to global/external scoped variables (B) Attempt to be stateless
  • Pure functions are composable (A pure function can be made of other functions if they are pure)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are the Pros and Cons of Functional Programming?

A

Pros
* Easy to understand because not stateful/does not have side effects.
* Testing and debugging is easier, as the function is passed everything it needs and does not rely on state or have side effects.

Cons
* Writing pure functions can reduce readability for complex operations.
* Joining pure functions with the rest of application and IO operations can be difficult.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

When to use Functional Programming?

A
  • Concurrency/parallelism
  • Mathematical computational code
  • Smaller/less feature rich applications.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly