These are chat archives for jdubray/sam
As I said before, FP (unlike OO) is trying to address the three approximations of programming that we all took for granted for the last 50-60 years:
In FP functions do not update application state, only one assignment is a mutation, a function is the programming step, but that's just not the right way of doing it. In reality when you look at it closely, FP puts mutation in a big function box and FP reduces itself to just wiring, which RFP takes to the nth degree. Pure functions are as fallacious as the concept of data encapsulation, and immutability is as useless (if not poisonous) as inheritance.
well, that's what I am arguing about, you have to be crystal clear about your programming model. There shouldn't be anything like XFP or XOOP, your programming model should support as many use cases as possible, and if not, you should still define it with precision and purpose. The more choices you give to someone the easier it is to make the wrong choice
I'd better learn FP than OOP in a first place
yes, OOP actually enforces these three approximations! With FP you get at least a chance to handle these approximations better over time and who knows you may end up on SAM!