
Sadly, upon reviewing what I’ve written, I realize that I am not succeeding. I just devised a recipe for solving the problem and then created functions corresponding to steps in the recipe. I am still thinking imperatively, not functionally.
Is there a book or article that describes how to approach problems from a functional mindset?
How did you “flip the switch” in your brain to the functional mindset? Examples. Read lots of code. Don't worry if you don't understand all of it. But don't just 'look' at it, run it in your mind. Programming is like writing in that just like a novel writer, you read 10x the amount you write. Rewrite the same code as you learn, note the differences.
Others will provide better recommendations than I wtr recommended sources. Think of your problem not in term of what it does, but what data it handles, and what it does to it. Design your program as a set of boxes consuming and producing data, then implement the boxes as functions. If your data needs to be transformed in succesive steps, that's sequential computation and part of the problem's nature, not necessarily a result of an imperative mindset. You can implement it with composed functions. Functional programming can free you from having to deal with certain 'bookkeeping' aspects of imperative programming, but it doesn't free you from having to design a solution to the program. e.g mapping over a sequence is better than having to write a loop and control iteration, but you still had to think "do/apply X to all these Y". good luck, Iñaki Garay. -----BEGIN GEEK CODE BLOCK----- Version: 3.1 GCS/GMU d- s:- a25 C++ UL+++ P--- E- W+ PS+++ PE- Y+ t++ 5+ tv- b++ DI+ D--- G e h! r y++ ------END GEEK CODE BLOCK------