Category talk:Programming paradigm/Functional

From Rosetta Code

This page is self-contradictory and illogical; the first bullet does not in fact follow from the given definition. And examples are given later of functional programming mechanisms and languages that do allow for state change. I think more attention needs to be given up front to the distinction between the purist FP viewpoint and the more pragmatic viewpoint of languages such as Lisp that *allow* FP programming without requiring it. At minimum, the first bullet should say "desirable" rather than "possible", but I'd prefer a more explicit distinction between the strong and weak FP approaches (or should we call them "strong" and "gradual" to avoid biasing the question? :-). --TimToady 19:34, 31 December 2010 (UTC)

I tend to think purist declarations are false advertising, but the reasons for that bounce near discussion of Hegel and Turing-completeness. This page should probably describe common properties of the paradigm, and use subcategories for common groupings of support/behavior of those properties. That will tie in well with Semantic Mediawiki, which uses categories to define classes and derivations. --Michael Mol 21:41, 31 December 2010 (UTC)
Better? --Rdm 15:03, 1 January 2011 (UTC)
While I can now understand the language better, that's not really where my primary concerns were. I think we should stop including languages directly into the category, though, and instead use subcategories (e.g. Category:Programming paradigm/Functional/First-class Functions/degree and explicitness of enforcement or support and Category:Programming paradigm/Functional/Return-encoded state change/degree and explicitness of enforcement or support) to associate langauges with the paradigm. --Michael Mol 16:09, 1 January 2011 (UTC)
Those sound like spectrums (where most languages are somewhere within the spectrum) rather than categories (where the appropriateness of the label might be ambiguous for some languages but is probably unambiguous for most languages). --Rdm 19:31, 1 January 2011 (UTC)