Who is associated with the discovery of structured programming?
Edsget Wybe Dijkstra
Dijkstra disliked this coding statement, he replaced it with if/else and do/while statements.
What is the `goto` statement?
Structured programming imposes this discipline on developers.
What is `direct transfer of control`?
These are some of the hardware limitations of functional programming.
What are data storage and processing power?
What's a disk?
???
Dijkstra believed in this mathematical process to validate code.
What are proofs?
Functional programming imposes this discipline on the developer.
What is `assignment`?
Functional programming is characterized by the lack of these.
What are mutable variables?
Dijksta published his letter "Go To Statement Considered Harmful" in this year.
What is 1968?
"A program can be proven incorrect by a test, but it cannot be proven correct." This theoretical method is used to prove the correctness of code.
What is the scientific method?
OOP programming imposes this discipline on the developer.
What is `indirect transfer of control`?
According to Clean Architecture, functional programming protects us from these issues.
What are concurrency issues?
Functional programming is associated with this person who is credited with this invention.
What is l-calculus (lamba calculus), invented by Alonzo Church?
The scientific method manifests in the development world as this process.
What is test driven development?
According to Bohm and Jacopini, all programs can be constructed from just these three structures.
What are sequence, selection and iteration?
A development tool we implement everyday that is mostly functional (?).
What is source code control system (Version control)?
Dijkstra's official job title, which was necessary for his marriage.
What is "Theoretical physicist"?
Why was it so important to remove `goto` statments from code?
Allows verification.
Describe the bank account analogy and how it relates to functional programming.
Storing the account balance as a variable vs. storing all transactions and calculating the value every time you need to see the balance.
Most programs are CRUD. Theoretically, we can remove these operations with a purely functional program.
What are `update` and `delete`?