x = x +1 - this is a mathematical nonesense but widely used when teaching programming (of course due to being a notation supported by mainstream - old and new - languages)
When one approaches functional programing, habits such as using mutation must be abandoned. Hence why it may be more dificult
I also agree that it is actually easier as the handling of state the FP way results in programs that are easier to maintain and debug.
But there are "degrees" with regrads to functional programming. It is one thing not to use side effects and pass functions as objects. it is another to design APIs as algrebras, master recusion schemes, and to see Adjoints and coproducts everywhere. The latter involves quite a bit of study, and I'd argue that is more involving thatn your avereage design pattern, being more abstract.
When one approaches functional programing, habits such as using mutation must be abandoned. Hence why it may be more dificult
I also agree that it is actually easier as the handling of state the FP way results in programs that are easier to maintain and debug.
But there are "degrees" with regrads to functional programming. It is one thing not to use side effects and pass functions as objects. it is another to design APIs as algrebras, master recusion schemes, and to see Adjoints and coproducts everywhere. The latter involves quite a bit of study, and I'd argue that is more involving thatn your avereage design pattern, being more abstract.