Talk:Functional programming/Old version

From HaskellWiki
Jump to navigation Jump to search

This page was replaced by Functional programming. - MichalPalka 11:54, 27 December 2007 (UTC)

As author of the "old version" I find that your version is too verbose in order to describe the functional paradigm. My article concentrated on the functional paradigm and let the features that come along with it (higher order functions, purity, laziness) in separate articles. I find an overview article such as yours important, but we should find a better way to let atomic and overview articles to coexist. I do not consider my article being old. Can we move your article to "Functional programming overview" and mine back to "Functional programming" ? Lemming 16:08, 18 January 2008 (UTC)

I agree that the new version is quite verbose, but it also makes several important points that the old version doesn't. One important point is that functional programming is a style of programming and that even some imperative languages support it. You insist that the article should be shorter, but after looking at it again I think that short paragraphs describing all common features of FP are necessary. You might want to write separate articles that describe them in detail, but the short descriptions should be kept anyway. I don't believe that displaying the same information information in several places on the wiki is a bad thing, especially if they are linked together by hyperrefs.

I decided to write it from scratch because I didn't like taking assembly language as an example of an imperative language and because I wanted to structure it in a different way. Your article indeed isn't 'old', I refer to it in that way only because it is older than the current one.

I wouldn't like to replace the article back with your version nor to make it considerably shorter, however if you have any more specific ideas how to improve it, feel free to do it. MichalPalka 10:02, 23 January 2008 (UTC)

I do not insist on altering your article considerably (e.g. shortening it), because my article is already what I consider being appropriate - of course. What do you think about the renaming I suggested?

Btw. I decided to use assembly language as the example for imperative programming, because it is really pure imperative programming with no functions at all. Lemming 13:54, 23 January 2008 (UTC)

Well, I wrote another version of functional programming precisely for the reason that I didn't want newbies to stumble across the old one :) From reading it they might think that functional programming compares favorable to assembly programming, but they might not know why it does to high level imperative languages. Also, I find that the descriptions of FP features are too terse and could be meaningless to newcommers. Just look at the FP article on wikipedia that is even more verbose than mine. To conclude, I think that current article is much more useful to newbies than the old one and I don't think it should be replaced by a short glossary entry. What you could do is to extend its introduction or first section with some 'glossary information '. MichalPalka 11:03, 24 January 2008 (UTC)

Meaning of pure

The article states "Languages that prohibit side effects are called pure". Are you sure? I always thought, that the term is "purely functional", that is, the language has not simply functions as features, but functions, in a narrow sense, are the exclusive control structure in the language. Thus side effects are forbidden, because (mathematical) functions never have side effects. Lemming 21:38, 14 December 2008 (UTC)

Is it really a better definition? Scheme, for instance, uses functions as the only control structures and yet allows for side effects. I think that the general definition of pure is side-effect-free. People even call some C functions pure (if they don't change the environment). MichalPalka 13:10, 30 December 2008 (UTC)