Re:Windows 3.1 All Over Again
by baybal2 on Monday September 25, 2017 @07:34AM
(#15329558)
The author seem to loose the point of FP, as is the case with many web programmers
Async != FP
Back in my high school days, FP was almost strictly about usage of pure functions above anything else.
The late comers to the party, the React guys, then bunched FP with async stuff, and function polymorphism. That was wholly apocryphal to the original FP idea.
I can still cite my high school teacher citing Niklaus Wirth: "If a function does not interact with external data in a any way other than reading them from its inputs, the whole program can be represented as a spreadsheet"
The original advantages were states as:
1. a program written in this manner is very easy to optimize.
2. an interpreter or a compiler executing such program is easier to program, and is less error prone
3. for as long as a kind of middleware sits in between the "spreadsheet function," and the data, it is possible to write a continuous execution log with ease, as well as to do tricks with getters/setters to start execution from arbitrary points in code.
All of that is stuff from times when Oberon and Modula were "hip" (seventies)
Async != FP
Back in my high school days, FP was almost strictly about usage of pure functions above anything else.
The late comers to the party, the React guys, then bunched FP with async stuff, and function polymorphism. That was wholly apocryphal to the original FP idea.
I can still cite my high school teacher citing Niklaus Wirth: "If a function does not interact with external data in a any way other than reading them from its inputs, the whole program can be represented as a spreadsheet"
The original advantages were states as:
1. a program written in this manner is very easy to optimize. 2. an interpreter or a compiler executing such program is easier to program, and is less error prone 3. for as long as a kind of middleware sits in between the "spreadsheet function," and the data, it is possible to write a continuous execution log with ease, as well as to do tricks with getters/setters to start execution from arbitrary points in code.
All of that is stuff from times when Oberon and Modula were "hip" (seventies)