What if we just sank something really big and made of concrete on top of the oil leak, like a cruise ship or an aircraft carrier? Just something really really heavy, and wide enough to cover the hole by a large margin.
HN user
sosorry
Yes, really!
I do a lot more functional programming than I do imperative programming. An anonymous function in context of an accumulator is obvious to me.
The point that I maybe didn't make so well was that the second version is working in higher level constructs. The first version is doing a lot of integer and pointer manipulation, the second is summing across a collection.
The two versions might be speaking in different languages, to some extent, but that doesn't mean that one or the other is aesthetically wrong.
I don't particularly understand what makes the second one more confusing than the first.
In particular, as a non-c programmer this: "(*i)->faceValue()" would be pretty confusing to me.
The first one in 'English':
"For each i starting at dice.begin(), while i is not equal to dice.end, incrementing i. Add to 'total' the face value of the thing that i is pointing to."
The second one in 'English': "Accumulate from dice.begin to dice.end, initializing the accumulator to 0, adding the face value of each die."
The first one might be idiomatic C++, but it doesn't seem to me that it would be idiomatic in any natural language.
(reduce #'+ (map 'list #'faceValue dice))
what is obvious depends on your background.