(I think) you're starting with the flawed assumption of what "the" stack is, while functional languages like Haskell have a stack, it is very different from the stack as you may now it in C, so the optimization issues are different too. The assembly of functional calls in functional languages can be a lot more lightweight then in for example C.
Not always is "exponential" a bad thing. For small sets, the expo algorithm is actually faster than the polynomial one. Although yeah, generally speaking, it's a bad idea.
I tried on #3 the most inefficient algorithm I could come up with - blindly going through all possible combinations and checking if their biggest member is equal to the sum of the rest. Time of the execution: 0.6s
I am not sure if this step of allowing the "shortcuts" was part of the game or not. All that would had to be done is to give 128 elements of the array to exclude at least the most blatant brute-forcing.
OK, I'll bite. 'Code' for me, at the moment, is a web app in beta that needs functional and cross-browser UI testing.
So until I script all flows into Selenium, twill, windmill or something else, and until I can figure out how to automate screenshots of all screens in the OSs and browsers I care about (http://stackvm.com ?), I have checklists, and I go through them manually.
It helps that my web app's UI is short and sweet, but that's probably because I'm trying to avoid thinking about the combinatorial explosion it's hiding.
I had a classical guitar warm up guide which had an introduction by Robert Fripp. He included a short list of tips and one was that the value of finding a great teacher is that they can connect you to the culture of the instrument (I'm paraphrasing b/c I can't find any references). That's something that's difficult to replicate on your own.
That said, you can learn a lot on your own. There's no right or wrong approach so you should feel free to take the route you're most comfortable with.
I think a problem that bugs me a lot is how I see lots of people wanting to do lots of cool things, but they lack the appropriate guidance. We do that on a day-to-day basis, but what about the other folks out there who don't know about this place?
Usually forums, IRC, blogs help in getting immersed with anything, but I have a feeling that a startup with the primary purpose of "Enlightening" its users has yet to come.
edit: Basically what I'm shooting for is: how to get rid of the crappy forums and allow a truly easy and fun way to go about learning new things.
People go to college to learn about how things should be, but not how they are. Waste of time and money, sometimes.
Would you mind commenting on my website, Curious Reef, which is aiming to help people learn new things? I would love to hear if you think it's a solution to that problem.