Functional Programming requires right brain thinking?

9 points by ankurdhama ↗ HN
Our left brain solves problem by sequencing things/step one after another and is the more active part of our brain where as our right brain solves problem by finding relationships/patterns between various facts that our brain knows and then trying different permutation/combination of these facts by composing these facts to come up with solution and hence takes much more time to come up with solutions, which is more like we solve problems in FP way, by composing primitives and building up new stuff and so on. Also the fact that FP requires more thinking and less code seems to indicate that FP required right brain thinking. Another fact is that it is not easy to learn and do FP properly and takes lots of effort because our thinking is mostly dominated by left brain and learning FP require you to activate and use your right brain.

What do you guys think?

5 comments

[ 2.1 ms ] story [ 21.8 ms ] thread
I'm terrible at right brain thinking and I've been chugging the functional kool-aid, so I don't think that's the issue.

In fact, I could almost argue the opposite. For instance, a standard left brain approach is to break a large problem into smaller sub problems which can be easily managed. When I'm doing functional programming, it's easy to start breaking down a problem via recursion, but the idiom for imperative programming is often to tackle the whole problem at once. To me, that seems to require far more pattern recognition and gestalt understanding than the reductionist functional approach.

Hmmm .. in imperative you start from one step and keep on thinking of next step and so on until you reach solution. This is more like left brain. In FP you break down the whole problem into parts but at the same time you also look at the overall problem and the you think about various composition to solve specific parts and how this evolve in complete solution, which for me seems like more of a right brain thing to come up with correct composable parts and how to glue them together to find the solution
I see where you're coming from. I guess my argument comes from your statement

  in imperative you start from one step and keep on *thinking of next step*
I'd argue that the thinking there is far more right brained that the thinking in functional programming. When I'm doing functional programming, the steps are large enough that there's usually only one step I can take which won't go off into a horribly wrong direction. With imperative programming, the steps are much simpler, but also much smaller, so I can't think of just one step at a time. Instead, I need to think ten steps ahead, which feels like the kind of pattern matching that the right brain does.
My point was that in FP you build things by composing existing things which require much more thinking it terms of trying different permutation and combinations at which the right brain is much more capable of. In general when I am doing FP I need to do lot of thinking and it requires some time whereas in imperative programming you can basically start coding as soon as you heard the problem. Ofcourse in the end the FP solution is much more elegant and simple
The left-brain/right-brain idiom is overplayed. I've been in neuroscience/brain-machine-interface research for about 8 years, and the matter-of-fact public understanding of "left-brain vs right-brain" does not in any way reflect the latest scientific understanding of how the brain works.

It's like Feynman said: If you think you understand quantum physics..