Skip to main content

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

6
  • 10
    +1 "Functional decomposition" != "functional programming". The first relies on classic sequential coding using vanilla data structures with no (or only hand rolled) inheritance, encapsulation & polymorphism. The second expresses solutions using lambda calculus. Two completely different things. Commented Jan 12, 2012 at 9:36
  • 4
    Apologies, but the phrase "procedural programming" stubbornly refused to come to mind earlier. "Functional decomposition" to me is far more indicative of procedural programming than functional programming. Commented Jan 12, 2012 at 11:27
  • Yes, you're right. I did assume that Functional Programming favors reusable functions operating on the same simple data structures (lists, trees, maps) over and over & actually claims that this is a selling point over OO. See Stuart Halloway (a Clojure FP proponent) here saying that "the over-specification of data types" is "negative consequence of idiomatic OO style" and favoring conceptualizing an AddressBook as a vector or map instead of a richer OO object with other (non-vectorish & non-maplike) properties and methods. Commented Jan 12, 2012 at 13:33
  • The link for the Stuart Halloway quote: thinkrelevance.com/blog/2009/08/12/… Commented Jan 12, 2012 at 13:34
  • 2
    @dan That might be how it's done in the dynamically typed language Clojure (I don't know, I don't use Clojure), but I think it's dangerous to conclude from that, that that's how it done in FP in general. Haskell people, for example, seem to be very big on abstract types and information hiding (perhaps not as much as Java people though). Commented Jan 13, 2012 at 0:38