Wikipedia:Articles for deletion/Purely functional

The following discussion is an archived debate of the proposed deletion of the article below. Please do not modify it. Subsequent comments should be made on the appropriate discussion page (such as the article's talk page or in a deletion review). No further edits should be made to this page.

The result was no consensus. Also, the article has been rewritten as a disambiguation page on 3 August, apparently without opposition. Any new nomination would have to take his change in circumstances into account.  Sandstein  20:09, 6 August 2016 (UTC)[reply]

Purely functional (edit | talk | history | protect | delete | links | watch | logs | views) – (View log · Stats)
(Find sources: Google (books · news · scholar · free images · WP refs· FENS · JSTOR · TWL)

People asked for deletion in 2009 and 2013 in the discussion page, but, as far as I know, nerev did a deletion request. Here I do.

The arguments are mainly that there is no clear or standard definition of what «Purely functional» means. Purely functional seems to refer to functional programming, which is «pure». That is, using only this kind of program and no imperative programming. But it is not clear why a page is needed to state that some programs mixe two kind of programming and some programs use only one kind.

The article «Purely functional» mostly considers «Purely functional data structures», that is, data structures which can be used in functional programming. There is certainly the need for article about those structures, (and I intend to edit the dequeue article to add more informations about the functional implementation of efficient dequeue). But I think that having an article about «Purely functional data structures» is a bad idea. Note that even Okasaki, who wrote the reference book about Purely functional data structure did not give a precise definition of what it means by «purely functional data structures», apart that they are data structure which can be coded in functional languages.

Note: This debate has been included in the list of Computing-related deletion discussions. Arthur MILCHIOR (talk) 16:17, 20 July 2016 (UTC)[reply]
  • Comment There are indeed a few problems with this page:
  • The first is the name, which should either be "Pure functional programming" (or possibly "Purely functional programming") or "Purely functional data structure" to know if we are talking about the programming paradigm or a class of data structures. (The current article seems to be mostly about the former at the moment.) Of course, purely functional data structures are one aspect of purely functional programming.
  • Both would seem like valid topics for an article to me. Pure function programming does have a lot of different idioms compared to impure functional programming. Purely functional data structures do use some interesting tricks beyond those of traditional persistent data structures (e.g. using thunks/closures to both amortize and share the cost of operations, without having to explicitly deal with mutable state).
  • That said, "pure" vs. "impure" functional programming may be better discussed in a section of the Functional programming article itself. Purely functional data structures could possibly be discussed in section of the Persistent data structure article. (Although, in both cases they're fairly long articles already.)
So I think some heavy refactoring, renaming and merging is in order here, but an outright deletion is not. At the very least a redirect or disambiguation page should be left in place under this title. —Ruud 16:43, 20 July 2016 (UTC)[reply]
Relisted to generate a more thorough discussion and clearer consensus.
Please add new comments below this notice. Thanks, Yellow Dingo (talk) 08:52, 28 July 2016 (UTC)[reply]
  • Keep or merge. I largely agree with all of Ruud's points. This is a notable concept that is a defining feature of some languages (like Haskell [1]) and data structures [2]. A GScholar search nets over 30,000 hits and most of the first two pages hits concern this topic. So this seems highly notable. It may be better to split into purely functional language and purely functional data structure articles or sections, but I don't see any policy-based reason for outright deletion. --Mark viking (talk) 17:24, 28 July 2016 (UTC)[reply]
  • Merge to Referential transparency (P.S. or to Pure function) per WP:PAGEDECIDE. While there may be some nuances making them separate concepts, developers interested in the subject will be best served by reading about both concepts in the same page, as referential transparency is the primary benefit of using purely functional languages; and there's simply not enough context in this stub to properly explain the concept. Diego (talk) 17:26, 28 July 2016 (UTC)[reply]
    • Merging/redirecting it to Referential transparency would create unnecessary confusion. Purely functional programming is about more than just referential transparency, and referential transparency applies in more contexts than just in purely functional programming. Merging it into Functional programming would make more sense. There the connection to referential transparency can be discussed. —Ruud 14:23, 30 July 2016 (UTC)[reply]
  • I do agree with Mark viking in the importance of a purely functional data structure article. I wrote Purely_functional_datastructures. It reuse some of the introduction of the «Purely functional» page. If you agree, I suggest that the «purely functional» page be either deleted, or renamed into «Purely_functional_data_structures» and we use the page I wrote for purely functional data structures. I don't think there is much in the «Purely functional» article to start a «Purely functional language» article, but it certainly may be an interesting article. I agree with Ruud Koot: it should not be merged/redirected to Referential transparency. But I don't see the point of merging this page into functional programming, because the page functional programming already consider purely functional programming. In particular, it already speaks of «referential transparency». Finally, as noted in the discussion, the examples of the purely functional page, is a bad/artificial example. And the «Benefits and applications» part of this page consider mostly the benefits of persistency and of referential transparency, therefore, I don't think we lose anything if this part is deleted. Arthur MILCHIOR (talk) —Preceding undated comment added 19:11, 31 July 2016 (UTC)[reply]
With the advent of Arthur's Draft:Purely_functional_data_structures (nice work), I'd support conversion to a disambiguation page. --Mark viking (talk) 21:37, 31 July 2016 (UTC)[reply]
Yes, a disambiguation page seems a good option too. Diego (talk) 07:30, 1 August 2016 (UTC)[reply]
  • This is not at present an appropriate disambiguation page. The entries are at best WP:Partial title matches. It might be possible to craft a WP:Broad concept article, but the disambiguation tag should be removed. olderwiser 11:48, 2 August 2016 (UTC)[reply]
    • No. A key reason for this deletion request is that having a "broad concept article" under this title is not useful. This is not a "partial title match" in the sense of WP:PTM. People say something is "purely functional" when that actually mean that something is a purely functional programming language, or a purely functional data structure, or a pure function. We need to disambiguate between those various meanings. Hence the disambiguation page. —Ruud 12:23, 2 August 2016 (UTC)[reply]
      • I don't agree. It is an adjective phrase which are inherently problematic for disambiguation because in general things are referred to by the adjectival phrase alone only in very casual circumstances or where the context has already been clearly established to allow an elliptical reference. None of the entries for the proposed disambiguation page clearly establish that the subjects are commonly known by the phrase "purely functional" alone. The article at present only indicate that this phrase is used in partial title matches as an adjectival modifier. olderwiser 12:59, 2 August 2016 (UTC)[reply]
        • "Being used in partial title matches as a modifier" seems a very good reason to disambiguate the term in this case. The primary function of disambiguation pages is for navigation purposes, leading readers to the article they intend to read.
    If there is some wiki rule that "disambiguation pages can't possibly exist unless all their entries are fully referred by the string that serves as the DAB title", I say here we have a good case to ignore that rule; it is not serving its purpose.
    The links included in the proposed page are not an arbitrary compilation, they are related by some common meaning that may produce ambiguity in the mind of the uninformed reader, but one which do not constitute a notable topic on itself. Any item in the list may be what the reader had in mind when they though of a "purely functional something", so they satisfy the criteria for inclusion under WP:PTM. Diego (talk) 13:43, 2 August 2016 (UTC)[reply]
    There is a long history of such adjectival PTM disambiguation pages being routinely deleted at AfD. The basic rule of thumb is that the purportedly ambiguous articles must establish that they are known by the adjectival phrase alone. If not, there is no need for a disambiguation page. However, these uses are all very clearly closely related to one another and I think could be treated as a WP:broad concept article. olderwiser 14:00, 2 August 2016 (UTC)[reply]
    Being known by, or being referred at? There is no shortage of references where they explain that "language X is purely functional" when describing a programming language, or "this expression is purely functional" when describing this or that subroutine. In my mind that's enough to have the disambiguation page, but it doesn't qualify for a broad concept article. I would agree to leave out articles like the Starship's bot or augmented reality, though. Common sense says that the term used as a search query refers to the programming context. Diego (talk) 14:25, 2 August 2016 (UTC)[reply]
    Disambiguation pages were never meant to replace Google or other web searches. You can put in many such adjectival phrases and return results that are partial title matches. Consider this another way--could an article on any of these topics ever be titled as simply "Purely functional"? If not, then we have partial title matches. The phrase itself may be ambiguous, but as there is no potential title conflict there is no need for a disambiguation page. IMO, either a broad concept article or a simple search is preferable. I don't understand why it would not qualify for treatment as a broad concept article--all of the subjects are clearly closely related. olderwiser 15:43, 2 August 2016 (UTC)[reply]
    What you are claiming WP:PTM states is not what WP:PTM actually states. The purportedly ambiguous articles are known by the adjectival phrase alone. Those here that know what "purely functional" means are in agreement that having a "broad concept article" is a bad idea. —Ruud 19:49, 2 August 2016 (UTC)[reply]
    The purportedly ambiguous articles are known by the adjectival phrase alone. citation needed - none of the articles explicitly support this claim at present. Until evidence is provided to contrary, these are nothing more than PTMs. Perhaps "those who know" might bother to explain why a broad concept article is a bad idea. olderwiser 22:05, 2 August 2016 (UTC)[reply]
    Because, how would you write such article, and what would you put in it that was not original research? I'm not aware of any sources that cover those words as a single, separate topic. From my programming knowledge I know that what those topics have in common are the two properties described in the lead of Pure function, that's why I suggest below thia article as the primary target.
    The point of this Dab would be to enable navigating to the specific content that we have. A Google search would provide results for all those pages with pure things that have some functionality due to their combined dictionary meanings. The Wikipedia articles that describe programming without side effects, which is what someone looking for this term will want, are all at that Dab page.
    An abstract guideline that was developed for names and doesn't even mention adjectives isn't good advice here. This case is more "Mississippi River" than "Louisville Zoo", if we follow the guidelines examples.Diego (talk) 19:51, 2 August 2016 (UTC)[reply]
    I'm not sure what abstract guideline you're referring to. WP:DAB has proven to be very effective, and really does not seem particularly abstract. I fail to see how either "Mississippi River" than "Louisville Zoo" are relevant comparisons here. The point is that there is at present no indication that any of these are known as "purely functional" as a name rather than as a attribute or adjectival description. olderwiser 22:05, 2 August 2016 (UTC)[reply]
    Ok, I meant "general" more than "abstract". Guidelines in general and the WP:PTM section in particular are written in general terms to handle a large number of situations; it seems clear to me that the guideline was not written with adjective phrases in mind, so it doesn't necessarily provide good advice.
    no indication that any of these are known as "purely functional" as a name And here is the failure in your reasoning. The term is used as an adjective, so guidelines written with the assumption that the title term needs to work as a name are not applicable. My Google search above provides evidence that "functional programming" and "functional languages" are regularly referred to as "purely functional" as an adjective, so the ambiguity of the term exists. Diego (talk) 09:06, 3 August 2016 (UTC)[reply]
    Except adjective phrases as disambiguation pages have come up many times before at Afd and are routinely deleted as PTMs. Your Google search does not show that these subjects could be titled as simply "pury functional", which is the entry threshold for disambiguation on Wikipedia. olderwiser 09:57, 3 August 2016 (UTC)[reply]
    That's an WP:other stuff argument. Were those DABs deleted because their content didn't describe a similar content, but a miscellany of unrelated terms? Are all adjective phrases deleted, no exceptions? Adjective phrases are not addressed by the WP:Disambiguation policy, nor they appear at WP:Outcomes, so I don't see why a particularly restrictive interpretation of WP:PTM should be the only reason to delete the page if the other criteria for a DAB page are met (i.e. "resolving the conflicts that arise when a potential article title is ambiguous, most often because it refers to more than one subject covered by Wikipedia").
    Your Google search does not show that these subjects could be titled as simply "pury functional" You're still making the same mistake, that the topics need to be titled with the term. They are referred to by the term, which makes it a likely search term. Diego (talk) 11:27, 3 August 2016 (UTC)[reply]
    It's not a mistake, that is a fundamental criteria for WP:Disambiguation. Disambiguation pages do not attempt to resolve any potential ambiguity--the starting point is where more than one article might have the same title. If none of these topics could be titled as "purely functional" there is nothing to disambiguate within Wikipedia. Also, if as you now suggest, these terms are in fact related, then why is a broad concept article not appropriate here. It seems far more appropriate than a disambiguation page where none of the titles are actually ambiguous. olderwiser 11:44, 3 August 2016 (UTC)[reply]
    Note that in PTM, the instructions "Do not add a link that merely contains part of the page title" are qualified with "where there is no significant risk of confusion", but here we have a case where there is significant risk of confusion. It also says "Add a link only if the article's subject ... could plausibly be referred to by essentially the same name". It doesn't say that the subject needs to be titled that way, it says that it is referred to, which we also have. PTM definitely doesn't say what you think it says.
    A broad concept article is not appropriate because we can't write it; if we could, it would be a valid solution, but it simply doesn't have the notability as a stand-alone topic, that's why it has been nominated for deletion to begin with. Diego (talk) 11:49, 3 August 2016 (UTC)[reply]
    I've yet to see convincing evidence there is significant risk of confusion. And while I understand the current article is a sort of attempt at a broad concept article, I do not understand what is so bad about it. It seems a fine basic overview. olderwiser 11:54, 3 August 2016 (UTC)[reply]
    You can take a look at the discussion page of the article, it gives you a good idea of what is so bad about the article when I proposed it for deletion. The example is artificial and bad. The article mainly consider data structures, which is a very specific topic, and mostly ignores languages and programming. Finally, in my opinion, the «see also» part is nonsens. VList, for example, is a data structure, which is not purely functional. The creator of VList argues that it should be a basic component added to purely functional language, but it has not be done, and since VList are more than a decade old, there is no reason to think that it will ever change. Arthur MILCHIOR (talk) 00:00, 4 August 2016 (UTC)[reply]
  • A significant number of articles link to this page directly. I wonder if we should make Pure function the primary topic instead, with the DAB page linked from the hat note, or alternatively merging the links into that article? Otherwise, this decision will need some cleanup work. Diego (talk) 12:01, 2 August 2016 (UTC)[reply]
    • These links should all be disambiguated and I think in many cases not to Pure function. Disambiguating would be easier to do if Purely functional is actually tagged as a disambiguation page. —Ruud 12:23, 2 August 2016 (UTC)[reply]
  • The way the discussion is going at present, I'm inclined to Delete this page. I'm open to being persuaded otherwise, but with the current state of the articles, a disambiguation page is inappropriate and the others here seem to have some issue with either creating a new broad concept article or utilizing the current article as such. olderwiser 22:08, 2 August 2016 (UTC)[reply]
    That would be the worst of all the possible options. At least the current situation(*) provides the most information to the readers and allows them to find their way to the information sought. Diego (talk) 11:30, 3 August 2016 (UTC)[reply]
    (*)(A broad concept article is what we have now, although it's a poorly sourced one, that was nominated for deletion).
    • (ec)Sigh, OK, I wrote that in a bit of exasperation at the rather confoundling way the discussion was progressing. To be clear, this is an unacceptable disambiguation page consisting of nothing but unambiguous partial title matches. This version doesn't appear to be that bad (though I'm not a SME). Perhaps that non-dab version can be enhanced to function as a broad concept introduction to the topic and perhaps better highlight the various meanings listed on the faulty disambiguation page. If the only option is between deleting this page or converting it into a bad disambiguation page, then I would rather delete this page. Readers would be better served by directing the to the search function. olderwiser 11:44, 3 August 2016 (UTC)[reply]
      • If you have ideas on how to improve the current article, we're all ears. The article has been under discussion for some time. It would help a source directly addressing the meaning of the term; that would be enough to have a stand-alone article. Diego (talk) 11:56, 3 August 2016 (UTC)[reply]
      • I don't believe a blind search is better than an editor-crafted navigation page. For a start, readers would miss the highly relevant link to Referential transparency, which in the DAB page can be placed in a See also section. Diego (talk) 11:59, 3 August 2016 (UTC)[reply]
        • And on a disambiguation page, such an entry would be uninterpretable without any context. Such context could better be provided on a broad concept article. Also the fundamental problem with a disambiguation page is that none of the articles describe the topic as being known by that phrase alone. In a way, it is the flip side of a problem with making this into a broad concept article --there need to be reliable sources regarding the use of the phrase as a potential name for the topic. olderwiser 12:09, 3 August 2016 (UTC)[reply]
          • We don't need sources using the phrase as a potential name for the topic, we have references where the topics are referred to with the phrase, which is the criterion specified by WP:PTM. (Thus ensuring that a reader who searches for a topic using that particular term can get to the information on that topic quickly and easily).
            • If there are such references, they are not in the articles at present. And a reference of a PTM such as "purely functional X" does not count. olderwiser 13:12, 3 August 2016 (UTC)[reply]
            • And I think you are still misrepresenting WP:PTM. Earlier you had mentioned This case is more "Mississippi River" than "Louisville Zoo". Can any of these topics meet the guidance there that you did not mention--i.e., can any of these topics ever be referenced as "the purely functional" similarly to how the Mississippi River is commonly known as "the Mississippi"? olderwiser 13:19, 3 August 2016 (UTC)[reply]
              • No, you are misrepresenting WP:PTM. It only states that one should not include "Louisville Zoo" in "Zoo (disambiguation)" because it is referred to by some as "the Zoo". Sensible policy. The situation here is different and WP:PTM does not apply. Instead you are making up some ad hoc rule that one is only allowed to include items on a disambiguation page if they are referred to by "the X". This rule is not supported by policy. This rule is not supported by practice: none of the entries under Convex or Continuous are ever referred to as "the convex" or "the continuous". —Ruud 13:58, 3 August 2016 (UTC)[reply]
    Do you have ideas on how to build a better broad concept article, or not? Diego (talk) 12:46, 3 August 2016 (UTC)[reply]
    I've already said I'm not an SME. To my eye the present article appears to be adequate. olderwiser 13:13, 3 August 2016 (UTC)[reply]
    And to the eyes of the four SMEs here it does not. Stop arguing from ignorance. There is no difference between having a disambiguation page at Purely functional versus one at Convex or Continuous. Neither policy nor practice supports your position. —Ruud 13:28, 3 August 2016 (UTC)[reply]
    Three cheers for civil discourse. olderwiser 13:35, 3 August 2016 (UTC)[reply]
    I would agree that Continuous and Convex have some examples that are very similar to what a dab page for this term would look like, but the problem is that quite frankly those are examples of bad disambiguation. For Convex in particular I plan on replacing the whole Mathematics section with an entry for Convexity (mathematics) because every other entry there is just a specific application of convex sets. So again, the proposal is very similar to those examples, but it's a matter of the examples being incorrect, not the proposal being correct. I've made my own proposal at the bottom that I think is more appropriate. -- Fyrael (talk) 19:55, 3 August 2016 (UTC)[reply]
    There are dozens, if not hundreds, of such disambiguation pages on mathematical terminology. (Just to start with properties named after mathematicians: Abelian, Noetherian, Archimedean, ...) And it is certainly not the case that all the entries listed will always be a special case of one of them. Quite frankly, it's a bit odd to start arguing that they are all "incorrect", somehow. You may want to confer with the participants of Wikipedia:WikiProject Mathematics before going on a Quixotic quest to "correct" all those pages. —Ruud 21:22, 3 August 2016 (UTC)[reply]
  • Please fix all incoming links before undertaking any disambiguation of this page. In so doing, you may discover patterns lending to a primary topic. Also, while we are on the topic of functionality, it is fairly common for things to be referred to as "purely functional" when invoking the Functionality doctrine in intellectual property law. That is what came to mind when I saw the phrase. bd2412 T 13:45, 3 August 2016 (UTC)[reply]
Thanks, that's good to know. I think that merits a hatnote in the current article. Diego (talk) 14:29, 3 August 2016 (UTC)[reply]
All incoming links are fixed. Arthur MILCHIOR (talk) —Preceding undated comment added 21:51, 3 August 2016 (UTC)[reply]
For later reference: I had to disambiguate some links to purely functional programming and some to pure function. I don't believe there is a primary topic here. Or if there would be one, then we'd end up with such an unwieldy collection of hatnotes on the target article, that we'd have to create a "Purely functional (disambiguation)"... —Ruud 22:39, 3 August 2016 (UTC)[reply]
  • Merge to Functional programming for reasons that are pretty much all outlined by the original poster. "Purely functional" as a general programming concept is exactly what's explained in Functional programming with more-or-less the common definition of "pure" attached. Purely functional data structures are, as defined by the OP, "data structures which can be used in functional programming" and would clearly be appropriate to discuss briefly within the context of that article. -- Fyrael (talk) 19:45, 3 August 2016 (UTC)[reply]
    • This is a meaningless proposal. Exactly what content from the article Purely functional do you propose merging to the article Functional programming and in what manner? Be more concrete. As you should have been able to deduce from the discussions above, the opinion of the SMEs here (those who will invariably be tasked with performing any merge outcome of this AfD) is that there is no such content left that should merged. What do you propose doing with the article Purely functional after this "merge" has be performed? Delete it, redirect it somewhere, leave a disambiguation page behind? Be more concrete. —Ruud 21:22, 3 August 2016 (UTC)[reply]
      • A merge implies a redirect to the merge target. bd2412 T 21:47, 3 August 2016 (UTC)[reply]
        • And such a redirect would not be a good idea, as discussed above. Anyway, this whole AfD is moot. The consensus seems to be that something should remain under this title. What exactly, is out of scope for the AfD and can be discussed on the talk page. —Ruud 21:58, 3 August 2016 (UTC)[reply]
          • Ruud, rather than addressing each of your attempted jabs I'll just say that if you've grown impatient with this discussion you can simply step back and take a break instead of lashing out at anyone that offers a differing opinion. Having a discussion is the whole purpose of this, so try to stay civil. To the point, it's perfectly meaningful to suggest a merge without detailing exactly which bits would go where. That can be determined if and when the merge is agreed upon. If you disagree with the reasoning that I included above, please state exactly why you feel the information can't be merged completely. -- Fyrael (talk) 07:00, 4 August 2016 (UTC)[reply]

For your information, there are no more incoming links to the purely functional article, apart from the purely-functional article which is a redirection to purely functional and should probably remains so. Thanks to Ruud Koot who probably did a part of it, since I ran in a modification conflict while editing a page myself. I guess and hope it answers one request of bd2412 and of Diego I also created an article Purely functional programming in order to clearly emphasize what is meant by the adjective pure when speaking of functional programming. It was mandatory in order to edit all incoming link. I guess that, if we ever choose the disambiguation page, it will also be needed anyway. Arthur MILCHIOR (talk) —Preceding undated comment added 21:50, 3 August 2016 (UTC)[reply]

Thanks, Arthur and Tobias. —Ruud 21:58, 3 August 2016 (UTC)[reply]
  • Keep as I see enough to suggest likeliness as an acceptable article. SwisterTwister talk 04:26, 6 August 2016 (UTC)[reply]
The above discussion is preserved as an archive of the debate. Please do not modify it. Subsequent comments should be made on the appropriate discussion page (such as the article's talk page or in a deletion review). No further edits should be made to this page.