Talk:Haskell
This is the talk page for discussing improvements to the Haskell article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google (books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
Archives: 1 |
This level-5 vital article is rated B-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||||||||||||||||
|
To-do list for Haskell:
|
On 4 June 2022, it was proposed that this article be moved from Haskell (programming language) to Haskell. The result of the discussion was moved. |
Talkpage use
editPlease append your contribution to the foot (the bottom ⊥ ) of this talk page; just click the "new section" tab to start. (This practice helps us when an editor is searching for content in a thread of discussion. This is a reason to keep the threads in temporal order, for ease of archiving and retrieval.) If you are posting to a specific thread, then click the "edit" link on the upper right of that section, and please remember to sign your post with 4 tildes (~~~~).--Ancheta Wis (talk) 23:28, 5 December 2009 (UTC)
STM Monad
editCould the STM monad section be moved to Concurrent Haskell? I've just been filling in the concurrency section on this page, including a short summary of STM, so it seems sensible to move the detailed information to the main page. Simonmar (talk) 20:19, 7 December 2009 (UTC)
- Absolutely agree. The amount of STM monad material in this article is much too large. I'll do a move. jbolden1517Talk 00:38, 2 January 2010 (UTC)
Stuff removed from Boolean data type article
editThe following section was removed from the article Boolean data type:
begin removed text
In Haskell, a Bool
type is defined in the standard prelude, defining it as a simple algebraic data type:
data Bool = False | True
The operations are defined as ordinary functions and operators:
(&&), (||) :: Bool -> Bool -> Bool True && x = x False && _ = False True || _ = True False || x = x
end removed text
Is there a place for this text in the Haskell-related articles? Perhaps in the Wikibook? Thanks, and all the best, --Jorge Stolfi (talk) 23:34, 30 December 2009 (UTC)
Parallel Haskell variants
editCitations for parallel Haskell variants were requested.
- Eden language is a parallel Haskell, see [1] (it's Rita Loogen and Yolanda Ortega-Mallén and Ricardo Peña-Marí, Parallel Functional Programming in Eden, Journal of Functional Programming, No. 15 (2005), 3). Eden is a distributed memory language.
- as for others, there is GpH [2], Glasgow parallel Haskell, which is a distributed memory language.
- and there is Multicore Haskell [3] (it's Simon Marlow and Simon Peyton Jones and Satnam Singh, Runtime support for multicore Haskell, ICFP '09). It's a SMP language. The implementation available in vanilla GHC with -threaded is the latter. —Preceding unsigned comment added by 137.248.75.121 (talk) 12:21, 12 January 2010 (UTC)
Merge of Haskell platform, after child pages have been created?
editAfter the article is tagged as too long, we now get pressure to merge? Please add your rationale. --Ancheta Wis (talk) 23:29, 1 March 2010 (UTC)
- I added the 'merge' tag; sorry for not starting the discussion, and please don't take it as "pressure". I claim no expertise in Haskell, so feel free to take this recommendation with a grain of salt.
- The page Haskell platform cites only one source and includes only a short listing of the tools available in the platform. I don't assume that the page can be much expanded beyond that, so merge might be appropriate.
- It does cite more sources now.--77.186.55.226 (talk) 12:09, 9 April 2010 (UTC)
- Also, regarding the size issue, Haskell (programming language) is not currently tagged as too long. It is only about 25k; Haskell platform is less than 2k. According to WP:Article size, articles smaller than 40k need not be divided for reasons of length. Looking at the history, I see that Haskell (programming language) was split last month. I wasn't aware of that when I came across Haskell platform while patrolling new pages. Note that, unlike Haskell features, the 'platform' article does not contain detailed descriptions.
- I'll leave the rest of the discussion to those more knowledgeable than I. Cnilep (talk) 16:43, 2 March 2010 (UTC)
- Cnilep, Thank you for the disclaimer; I moved merge tag to appropriate section. --Ancheta Wis (talk) 18:40, 2 March 2010 (UTC)
Haskell is a language with many different implementations (GHC, YHC, Hugs, UHC, ...) of which one (GHC) is included in a software package (Haskell platform). It's like you set up a repository for applications written in a specific language and write tools which provide access to these packages and libraries. Different things.--77.186.55.226 (talk) 12:09, 9 April 2010 (UTC)
article evolved. —Preceding unsigned comment added by 77.186.55.226 (talk) 14:07, 9 April 2010 (UTC)
Strange fact about L4 in Haskell
editThe "Applications" section finishes with this sentence: Notably, the first formally verified microkernel, seL4 was developed in Haskell. As far as I've been reading this is (very) incorrect. It seems the microkernel is developed in C and some scattered assembly language, and the code which was developed to verify that kernel-code was in Haskell... —Preceding unsigned comment added by Donkeydonkeydonkeydonkey (talk • contribs) 03:04, 24 July 2010 (UTC)
- As no-one has replied either way for a while regarding this, I will "Be Bold" ;-) and edit it. Please go ahead and revert if you know something I don't know, and my edit is wrong... --Donkeydonkeydonkeydonkey (talk) 16:46, 2 August 2010 (UTC)
- My understanding was that SeL4 wrote a full working microkernel in Haskell, and as they wrote it, they tried out the API and techniques; then they thew the first one away, and wrote the second one in a combination of Isabelle and C. --Gwern (contribs) 11:49 25 August 2010 (GMT)
- In fact, seL4 had its specification written in Haskell and proven using the Isabelle theorem prover. Then, the specification was translated to C, and the translation was proved also (which is the most of the work), so the final microkernel uses the power of C with the safe components of Haskell.
- More information can be found here: http://www.ertos.nicta.com.au/research/sel4/, and specifically in this paper http://www.ertos.nicta.com.au/publications/papers/Klein_EHACDEEKNSTW_09.pdf (Edit: have an account now) DokReggar (talk) 10:57, 10 December 2010 (UTC)
Criticism section doesn't feel right
editThe first paragraph just describes a negative of lazy evaluation, not a disadvantage specific to Haskell. If Perl, a language that many programmers criticize for its TMTOWTDI philosophy and arguable lack of readability, and whose code tends to underperform Haskell code compiled with ghc, has no listed criticism section (either for maintainability or performance) on Wikipedia, then I really don't see why Haskell needs one. Also, the second paragraph just sounds like a Haskell supporter's attempt to be overly objective by trying to find something that's technically a negative of the language. I don't think the learning curve of Haskell's syntax and type system is ridiculously steep--certainly not steep enough to warrant going in a Wikipedia criticism section. Dsrguru (talk) 03:12, 23 September 2010 (UTC)
- I think a criticism section is okay, it's likely that readers will want to get an opposing view. I agree that some of it is a bit weak, and that the syntactical argument is about beginners, and not really criticizing the language for general use. I've added links to Harper's blog, which I think is good, informed, and non-native criticism.
- Perhaps we should organize this by topic, most criticism seems to target laziness. —Preceding unsigned comment added by Ketil (talk • contribs) 08:10, 3 May 2011 (UTC)
- Also see Simon Peton Jones's presentation "Wearing the hair shirt". He basically admits that if he would do Haskell over again it would be a pure version of ML with type classes. On the other hand, perhaps it's also useful to list some of the benefits of lazy evaluation here (compositionality, pretty much required for parser combinators and list-of-successes, although a force/delay approach could work). The only non laziness related criticism is based on the sometimes difficult type error messages. Perhaps we can find some more: wild growth of type system extension but no dependent types, GHC being basically having replaced the Haskell 98 standard, problems encounter by commercial companies using Haskell (Galois), ... —Ruud 09:07, 3 May 2011 (UTC)
- Well, let's not go overboard with WP:OR. If the focus is on laziness, perhaps Lennart Augustsson's recent blog post (http://augustss.blogspot.com/2011_05_01_archive.html) listing benefits is useful? Ketil (talk) 12:54, 3 May 2011 (UTC)
- I don't think any of points I mentioned are original research. We just have to find some sources to support them. It's quite difficult finding sources, if you don't know what you are looking for. —Ruud 16:02, 3 May 2011 (UTC)
- Sorry, what I mean is that I think we shouldn't go around collecting any critical statement, but rather look for more comprehensive sources of actual criticism. (Maybe I should've said WP:SYN instead?) Many of the current links are "criticisms" used to motivate research that addresses specific issues. Ketil (talk) 12:58, 4 May 2011 (UTC)
- That whole original research/synthesis prohibition is just there to keep out cranks and other unwanted editors. In general, it shouldn't stand in the way of uncontentious and good editing. That's also sort of what I meant above: try to figure out what coherent message you want to convey first (preferably based on literature research or "expertise") and then find the sources to support it. That's quite different from "collecting any critical statement". —Ruud 12:51, 5 May 2011 (UTC)
- Also
seq
making program analysis more difficult and breaking parametricity. This should have been discussed in a few papers. —Ruud 22:21, 3 May 2011 (UTC)- Janis Voigtländer has some papers like that, which should be easy to find. 67.117.145.9 (talk) 09:10, 3 March 2012 (UTC)
- I would add, the situation with type system extensions seems to be strategic, they are trying to press as far as they can while keeping the types mostly automatically inferrable. Right now you may need an annotation here and there, but introduce dependent types and you're dealing with another proof assistant where the simplest program is a mountain of work. But, if you really do want to include that criticism, you could cite the Concoqtion paper that says GADT's might become the C++ template metaprogramming of functional languages ;-). I remember seeing a 2-line GADT specification for red-black trees and just being amazed, and it was one of the things that sold me on Haskell. 67.117.145.9 (talk) 06:38, 4 March 2012 (UTC)
- I agree (with both the fact that they are trying to keep type inference decidable and type checking terminating, but with polymorphic recursion, GADTs/OutsideIn(X), UndecidableInstances, etc. both are now theoretically out of reach, although practically the situation is still much better than in Agda or Coq.) There is also the problem that many features (GADTs, type families, functional dependencies) don't appear to be completely orthogonal, dependent types seem much nicer in this respect. The reformulation of the afore mentioned features using type equalities and coercions in the underlying System FC and recent language extensions like KindPolymorphism and ConstraintKinds are improving that situation a bit.
- Still, modern Haskell's type system isn't anywhere near the theoretical elegance of Hindley–Milner (hitting the often quoted "design sweet-spot") or Martin-Löf. On the other hand it is many times more expressive than the former and much more practical than the latter.
- I hadn't seen the Concoqtion paper yet, it looks interesting and I'll be sure to give it a read. It seems to slightly predate the introduction of type families and (re)design of System FC, so some of the criticisms might be a bit dated by now (e.g. "[Haskell does] not provide a direct way to express functions on types" or "in the form they are used in Haskell, GADTs always require that proofs be manipulated at runtime"). —Ruud 12:09, 4 March 2012 (UTC)
- Also
Non-strict or lazy semantics?
editDoes Haskell have non-strict semantics, but is lazily evaluated in practice or is lazy evaluation required? I can imagine so as this can affect the run time of certain functions by an exponential factor. —Ruud 21:46, 12 March 2011 (UTC)
- According to the Haskell Report:
Haskell is a general purpose, purely functional programming language incorporating many recent innovations in programming language design. Haskell provides higher-order functions, non-strict semantics, static polymorphic typing, user-defined algebraic datatypes, pattern-matching, list comprehensions, a module system, a monadic I/O system, and a rich set of primitive datatypes, including lists, arrays, arbitrary and fixed precision integers, and floating-point numbers. Haskell is both the culmination and solidification of many years of research on non-strict functional languages.
- —Ruud 00:21, 13 March 2011 (UTC)
- My understanding is Haskell does not require lazy evaluation (i.e. you could write a call-by-name implementation and it would conform to the standard) but in practice lazy evaluation (graph reduction) is what everyone uses, for the efficiency reasons you mention. The language definition only cares about the denotative semantics and not runtime efficiency. 67.117.145.9 (talk) 07:10, 3 March 2012 (UTC)
- Nod. It's not about the implementation, just the semantics. With strictness analysis you can replace lazy code with strict code in the code generator. A trivial example is any expression that would produce a normal form. x * y * z doesn't need any thunks. E.g. `length` can be translated to a strict tail-recursive strict function, etc. Chrisdone (talk) 15:24, 24 October 2012 (UTC)
- Haskell is a non-strict programming language by design decision; design desisions are made in haskell not on implementation level, but . There are multiple ways to implement this, one of these ways is 'by lazy evaluation' or 'outer most first evaluation'.
- There is a great talk of Prof. Christoph Lüth about this (it's in german, but you can use english-autogenerated subtitles) in his lecture about functional programming/haskell.
- https://youtu.com/nYomNcn8JAs?t=447
- https://youtu.com/Czv47QstXRs?t=1158 2A0A:A541:67F7:0:DFC8:6309:7AAE:7A4C (talk) 22:01, 6 December 2022 (UTC)
Related languages section is a bit messy
editPerhaps this section could be more clearly separated into languages that Haskell is derived from (Miranda, ML?), parallel efforts (Clean?) and langauges derived from Haskell (Agda, Disciple)? Ketil (talk) 13:02, 4 May 2011 (UTC)
- It's really, really tricky. Are Gofer and Helium dialects or non-fully-compliant implementations? Is Clean a dialect or a completely separate language? Are Ωmega, Agda and Curry related to Haskell or very different languages with Haskell-like syntax? To be accurate you end up putting each related language into it's own distinct category and that's not very useful either. —Ruud 09:27, 3 June 2011 (UTC)
typing mistake?
editSo under the "influenced by" it lists a language called "Alfl". I cannot find it, with a cursory Google search although ALF keeps coming up, including on Wikipedia.
It is not listed here, either:
http://en.wiki.x.io/wiki/List_of_programming_languages
- Tacobake
- It could be Alfa (proof assistant), a descendant of ALF (proof assistant) and precursor to Agda (programming language). I'd just remove any that are not acknowledged in the Haskell Report from the list, though. —Ruud 00:27, 30 December 2011 (UTC)
- Added here. —Ruud 00:33, 30 December 2011 (UTC)
- Actually, it wasn't a typo. According to "A History of Haskell: Being Lazy with Class":
Alfl, designed by Hudak, whose group at Yale developed a combinator-based interpreter for Alfl as well as a compiler based on techniques developed for Scheme and for T (a dialect of Scheme) (Hudak, 1984b; Hudak, 1984a).
- —Ruud 21:42, 16 October 2012 (UTC)
Citations in the "Influenced" section
editI feel that the "Influenced" section in the sidebar listing languages should include citations, no? — Preceding unsigned comment added by Mybuddymichael (talk • contribs) 15:01, 7 February 2012 (UTC)
- I completely agree. Feel free to add some ;) —Ruud 17:19, 7 February 2012 (UTC)
- I noticed that in the articles of most other languages (be it Perl, Python, O'Caml, Lua, Fortran), their "Influenced" section is also very rarely cited. This is not a problem specific to this article. Perhaps it is too hard to find a citation for that? IMHO it isn't very helpful to add a "Citation needed" for every single language listed here. Jwchong (talk) 01:35, 9 February 2012 (UTC)
- It should certainly be do-able with a bit of Google-fu. The biggest hurdle is that compared to "Influence by" it's sort of an inverse mapping, which does make it more work (you have to find a document for each language stating it was influenced by Haskell/..., instead of a single or few documents claiming Haskell was influenced by ..., ..., ...) Perhaps the [citation needed] should only be placed on the "Influenced" caption, but I don't now if that's technically feasible. Those tags do encourage people to find citations, though. —Ruud 11:52, 9 February 2012 (UTC)
The drive-by cn-bombing was inappropriate and is messing up the infobox. I think it's ok to roll it back and put the request here on the talk page. The influences of Haskell on Python (list comprehensions, itertools) and Perl (Pugs) are well known, and I think Ocaml now has a GADT-like construct influenced by Haskell. I don't know the situation with Lua and Fortran (maybe Fortran 2003 generics or something like that). I'd add the proposed C++ Concepts extension that is basically Haskell-like type classes. 67.117.145.9 (talk) 07:17, 3 March 2012 (UTC)
- Indeed, while Stroustrup proclaimed concepts are not type classes, I was still left wondering exactly how they were not supposed to be type classes after his talk. —Ruud 15:12, 4 March 2012 (UTC)
POV / Market analysis
editGuys, don't put POV stuff in the article of the form "Haskell is increasingly used in ___". This isn't the place to promote your favorite language. If you want to discuss Haskell adoption in industry, make it a new section or subsection, don't try to get away with using biased sources to support your original research. Be aware of WP:NOR and keep in mind things like: Google is fairly hostile to non-standard languages (source: I am a former Google employee). Peace 173.239.78.54 (talk) 21:02, 29 November 2012 (UTC)
List of designers
editHi Ruud. I re-read the reference and agree with your revert of my edit WRT all known Haskell implementations. You're right. But I don't believe your other recent revert (putting back a cluster of 13 redlinks in the infobox) is a good idea. You cite WP:REDYES, but unless "you intend to create" those articles as policy suggests, then I suggest that 1) WP:REDNOT reminds us that "red links to personal names should be avoided", and 2) these individuals are of unestablished notability (a criteria for creating any link and its article). If the red links are to remain, then I would suggest the list of designers should at least be verifiable so a future editor has context and material to create articles for the designers that are notable. I'll tag that, now. Thanks for considering this. Cheers. --Ds13 (talk) 23:01, 12 December 2012 (UTC)
- If I could put a footnote on the "Designers" label, I would already have done so, but this does not seem to be technically possible. I don't think it would ask too much of the reader to have a quick look at the "Further reading" section before concluding this information is unverifiable.
- Regarding the red links. Yes, I do believe many of them would pass WP:PROF and I want to create articles on several of them in the future. In the mean time I hope the red links will encourage others to help me with this task. I have no objection to unlinking individual entries after a careful examination would lead one to conclude they are unlikely to pass WP:N, but I don't believe that the mass unlinking was a good idea. —Ruud 23:20, 12 December 2012 (UTC)
- Yes, I looked at the template tag on the infobox label also, but it seems impossible. Well, hopefully the red sea will gradually turn blue. Cheers. :) --Ds13 (talk) 20:54, 13 December 2012 (UTC)
Ambiguity of "standardized" on introduction
editOn top section and Haskell(disambiguous) it said, "Haskell (/ˈhæskəl/) is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing."
In what way exactly it is standardized? Are we trying to say Haskell is something like a de facto standard of purely functional programming language?
Of course we aren't arrogant enough to claim Haskell is the de facto standard without the agreement of "purely functional programming language community" independent of Haskell community, are we?
Sure, one can write a paragraph or two to clarify Haskell in what way is well-organized or standardized. However, it is almost untrue and misleading on introductory text. I would be greatly disappointed on the lack of validity and correctness of wikipedia if we don't take this word away(or fix it) as soon as possible. Thanks. 14.198.221.19 (talk) 11:45, 26 February 2013 (UTC)
- Compared to the plethora of languages after Miranda (programming language) (which was in use at research labs before 1982) it was a standard, by design. For me, personally, the convenience of a real language with real semantics serve to make the topics more concrete, as being more mathematical, rather than ad hoc, which most programming languages become. The fact that declarative ideas from foundations-of-mathematics are built in, rather than tacked-on with imperatives, makes the language clearer. It did take time for the ideas to sink in, I admit. Perhaps a statement that some ideas from foundations of mathematics need to be studied first, should be added. --Ancheta Wis (talk | contribs) 13:10, 26 February 2013 (UTC)
Proposal: "Haskell served to standardize many of the functional programming concepts proposed, in an open standard, before 1991."
- It is standardized in the sense that there was a committee who wrote the "Haskell Report" on which several conformant implementations where based. —Ruud 16:48, 26 February 2013 (UTC)
- That's not really a standard, is it. Many languages have been defined on paper, by a committee. Many also have multiple implementations. I admit that, especially in recent times, various companies pushing their agendas and related technologies have made some previously highly regarded standardization bodies, if not laughing stocks, at least less relevant. But I've not seen any evidence that would support calling Haskell a standardized language, especially when the real language definition that matters is de facto and ad hoc. Kumiponi (talk) 20:38, 30 April 2015 (UTC)
Quick sort, just for fun
editI would like to add a quick sort example to amaze imperative programmers.
quick_sort :: Ord a => [a] -> [a]
quick_sort [] = []
quick_sort (x:xs) = (quick_sort [a | a <- xs, a < x]) ++ [x] ++ (quick_sort [b | b <- xs, b >= x])
I would like to add a quick sort example in the talk page to amaze functional programmers.
let quick_sort = v =>
v.length? quick_sort(v.filter(a => a < v[0])).concat([v[0]]).concat(quick_sort(v.filter(b => b >= v[0]))) : []
The quick_sort example has the flaw that the list xs is traversed twice if using comprehension or filter. This version is twice as fast:
quick_sort :: Ord a => [a] -> [a]
quick_sort [] = []
quick_sort (x:xs) = loop xs [] []
where
loop [] l r = quick_sort l ++ x : quick_sort r
loop (y:ys) l r
| y < x = loop ys (y:l) r
| otherwise = loop ys l (y:r)
Benchmarking with criterion on a Int list of length 30000:
benchmarking quick_sort/filter
time 835.5 ms (798.1 ms .. 869.1 ms)
1.000 R² (1.000 R² .. 1.000 R²)
mean 841.9 ms (831.6 ms .. 857.3 ms)
std dev 14.58 ms (1.536 ms .. 18.57 ms)
variance introduced by outliers: 19% (moderately inflated)
benchmarking quick_sort/partitionAcc
time 410.1 ms (385.1 ms .. 431.6 ms)
1.000 R² (0.998 R² .. 1.000 R²)
mean 421.2 ms (413.7 ms .. 433.7 ms)
std dev 12.04 ms (1.764 ms .. 15.50 ms)
variance introduced by outliers: 19% (moderately inflated)
Surprisingly to me, trying to get this speedup using the Data.List.partition function rather resulted in a 100% slowdown. Only turning the partitioning into a tail recursive function (loop) gives the speedup.
Of course, I guess the more efficient version isn't as "amazing" anymore. Andreasabel (talk) 08:48, 27 November 2019 (UTC)
Confusing
editAs a result of today's XKCD, I turned to Wikipedia.
It begins, "Haskell /ˈhæskəl/[17] is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing."
I've read that sentence several times, and checked the links, and I still have no idea *what it is*.
This article desperately needs a lede that explains what the thing is.
That's why I tagged it with Template:Technical. (my edit)
88.104.27.205 (talk) 14:23, 4 January 2014 (UTC)
- Probably some background information is missing as prerequisite.
- Is the lede of the functional programming article more intelligible than this article's lede?
- Regarding 'non-strict semantics':
- Does expression (computer science) help? I notice that the crucial idea of lazy evaluation (it means non-strict evaluation) is deeper down in the article.
- Perhaps the idea that a Haskell "thunk" (a chunk of code much like the anonymous block of JavaScript) is a closure which can be manipulated or evaluated might be added to the encyclopedia?
- Regarding 'strong static typing':
- Does it help to note that proofs of correctness motivated the design of the language.
- --Ancheta Wis (talk | contribs) 17:58, 4 January 2014 (UTC)
Too Technical?
editSomeone stuck another damn box template up, this time to complain that the article is too technical. Well, all programming languages are technical and very few make any sense to novices. Haskell is not Logo. I don't think it possible to so condescend to a lay audience to describe what makes one computer programming language different from another without making the article useless to anyone who might want to read it.
Don't be silly. — Xiong熊talk* 07:07, 12 January 2014 (UTC)
- I will remove the tag. __Ancheta Wis (talk | contribs) 09:45, 12 January 2014 (UTC)
- Maybe it is possible to rework part or the whole article to lower the prerequisites. I do agree that the article is quite complex and hard to understand, even though I am not a total newbie on that topic. What is the purpose of this article if it cannot explain why this language is different from the others to someone new to the field? Please do not forget that the aim of Wikipedia is to spread knowledge, not keep it guarded to some sort of elite society. I think we can have a first part that is understandable by everyone, and a second part more technical, so everything is here.
- Side note: the fact that "all programming languages are technical and very few make any sense to novices" is not a valid reason. It is our duty as contributors to make this assumption less true.
#!/bin/DokReggar -talk
08:47, 13 January 2014 (UTC)
Software in the Public Interest
editSince a small edit war seems to have started, I'll explain why I did the initial revert on this:
- haskell.org is an associated organization of Software in the Public Interest, not a subdivision, and as far as I understand joined initially for the sole reason that the Haskell community was too small alone to afford the bureaucracy of starting a non-profit organization entitled to tax-deductible donations.
- As far as I know, Software in the Public Interest does not "host" any Haskell resources, except for financial ones related to donations. The Haskell community runs its own servers. I think some of them used to be donated by / located at commercial entities like Galois etc., I'm not sure how that is these days.
- I don't know if the article should mention Software in the Public Interest, but if so I don't think it belongs in the History section where it was initially placed.
External links modified
editHello fellow Wikipedians,
I have just added archive links to one external link on Haskell (programming language). Please take a moment to review my edit. If necessary, add {{cbignore}}
after the link to keep me from modifying it. Alternatively, you can add {{nobots|deny=InternetArchiveBot}}
to keep me off the page altogether. I made the following changes:
- Added archive https://web.archive.org/20120210041742/http://www2.research.att.com/~bs/sle2011-concepts.pdf to http://www2.research.att.com/~bs/sle2011-concepts.pdf
When you have finished reviewing my changes, please set the checked parameter below to true to let others know.
An editor has reviewed this edit and fixed any errors that were found.
- If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
- If you found an error with any archives or the URLs themselves, you can fix them with this tool.
Cheers.—cyberbot IITalk to my owner:Online 11:08, 25 February 2016 (UTC)
External links modified
editHello fellow Wikipedians,
I have just modified one external link on Haskell (programming language). Please take a moment to review my edit. If you have any questions, or need the bot to ignore the links, or the page altogether, please visit this simple FaQ for additional information. I made the following changes:
- Added archive https://web.archive.org/web/20060220023022/http://jaskell.codehaus.org/ to http://jaskell.codehaus.org/
When you have finished reviewing my changes, you may follow the instructions on the template below to fix any issues with the URLs.
An editor has reviewed this edit and fixed any errors that were found.
- If you have discovered URLs which were erroneously considered dead by the bot, you can report them with this tool.
- If you found an error with any archives or the URLs themselves, you can fix them with this tool.
Cheers.—InternetArchiveBot (Report bug) 02:58, 31 October 2017 (UTC)
September 2018
edit- I've just reinstated a shorter version of the "Code examples" section. Please check my work, especially my attempt to shorten note [a]. Can we delete that note, perhaps moving its contents into the article body or code comments? Cheers, CWC 13:54, 29 September 2018 (UTC)
- Why do we have the "Haskell Base library and algebra" section in this article? IMO it is basically a programming tutorial, and does not belong in an encyclopedia article. (OTOH, it does convey one significant piece of information that no longer appears elsewhere in the article: Haskell has types such as Int and Word for high-performance, machine-oriented programming as well as indefinite-precision integers etc.) I suggest deleting the whole section (and maybe mentioning Int somewhere else). What do other editors think? Cheers, CWC 13:54, 29 September 2018 (UTC)
Done feel free to improve these edits. --Ancheta Wis (talk | contribs) 19:05, 29 September 2018 (UTC)
Nomination of Portal:Haskell (programming language) for deletion
editA discussion is taking place as to whether Portal:Haskell (programming language) is suitable for inclusion in Wikipedia according to Wikipedia's policies and guidelines or whether it should be deleted.
The page will be discussed at Wikipedia:Miscellany for deletion/Portal:Haskell (programming language) until a consensus is reached, and anyone is welcome to contribute to the discussion. The nomination will explain the policies and guidelines which are of concern. The discussion focuses on high-quality evidence and our policies and guidelines.
Users may edit the page during the discussion, including to improve the page to address concerns raised in the discussion. However, do not remove the deletion notice from the top of the page. North America1000 00:41, 26 March 2019 (UTC)
"widely used"?
editAny objection to removing the claim that Haskell is "widely used"? The reference lists a couple of dozen companies that have used it at some point. This is insufficient to support the claim of "wide" use. The reference itself promotes the language.— Preceding unsigned comment added by User:MadeYourReadThis (talk • contribs)
- This point made in good faith is the difference between "unused" and "in comparison to ...". How about citing the reference here?
- The sentences are qualified in their context. "In comparison to ..." is the context. Each sentence I read which resembles "*wide*" gives a clear context. No point in deconstructing each context until we can understand the context of your statement above.--Ancheta Wis (talk | contribs) 21:24, 6 September 2019 (UTC)
Development since 2010
editA lot has happened in the 11 years since Haskell 2010 was finalized, but the article says nothing about these developments. Here is a draft of a new section to add at the end of the History section. I post it here rather than simply inserting it as I'm unsure of its accuracy, and I may have missed important points. There are also no references yet (my main sources are the GHC Status page on GHC's Gitlab and linked pages,[4] plus the Haskell wiki page on the core libraries committee and its history,[5] and a few mailing list posts). Hairy Dude (talk) 01:38, 16 June 2021 (UTC)
GHC as de facto reference implementation
editFollowing the completion of the Haskell 2010 standard, it was initially hoped that the Haskell Prime committee would produce a revision of the Report every year with additional features standardized, as language development was progressing rapidly with many extensions in common use. This failed to happen as no consensus could be reached on which extensions should be standardized; most developers were content to use GHC with a plethora of nonstandard extensions.
The Core Libraries Committee was formed in 2013 to maintain libraries that shipped with the Haskell Platform distribution but were not considered part of GHC. With the lack of any standardization effort, this Committee, in consultation with the wider Haskell user community, oversaw changes to the libraries, culminating in the decision to depart from the 2010 standard with GHC 7.10 and later versions by making changes to the standard libraries that shipped with GHC. Such changes have included:
- Moving
Applicative
into the Prelude and making it a superclass ofMonad
(GHC 7.10). The Prelude class hierarchy was unchanged since 1998; since then, applicative functors (a more restricted abstraction than monads, but with the possibility for cleaner syntax and sufficiently powerful for many applications) had become popular and it was considered a historic mistake thatFunctor
had never been a superclass ofMonad
. Some functions that previously operated over monads, such assequence
, were also generalized to applicative functors. - Generalizing list functions such as
sequence
over the type classesFoldable
andTraversable
, which were likewise added to the Prelude (GHC 7.10). - Changes to the desugaring of do-notation to reduce the incidence of
fail
(GHC 8.0, enabled by default in 8.6), which was added to a new classMonadFail
.fail
is not part of the mathematical definition of a monad and has no reasonable implementation in many monads; its presence made it more difficult to guarantee the correctness of monadic code, contrary to the Haskell philosophy that safety should be guaranteed by the program's type.fail
was removed fromMonad
andMonadFail
added to the Prelude in GHC 8.8, breaking compatibility for any code that definedfail
in aMonad
instance. - Factoring
Monoid
intoSemigroup
, representing types with an associative binary operation without necessarily having an identity element, andMonoid
itself as a subclass, now containing only the identity (GHC 8.4).
Recent Promotional Efforts and Possible Relationship to Declining Improvements in Memory
editIt seems like academics have been promoting Haskell a lot recently for some reason. I think it may have to do with the perceived balance between ease of use for the programmer and computational efficiency. Furthermore, I think this balance is being promoted because computer hardware generally doesn't improve at the rate it used to. Should this be discussed more? CessnaMan1989 (talk) 16:12, 15 October 2021 (UTC)
- You may think this, and perhaps you are right, but these sound like subjective assessments and in order to include such claims in the article you would need to find a WP:reliable source actually stating them. --Ørjan (talk) 04:38, 16 October 2021 (UTC)
Requested move 4 June 2022
edit- The following is a closed discussion of a requested move. Please do not modify it. Subsequent comments should be made in a new section on the talk page. Editors desiring to contest the closing decision should consider a move review after discussing it on the closer's talk page. No further edits should be made to this discussion.
The result of the move request was: moved. It is proven that a vast majority of people looking for the word "Haskell" on here are looking for the language, providing strong usage grounds on calling the language primary. The opposition relies on long-term significance, but mainly engaged in "other stuff exists" and failed to show how on long-term significance can identify any topic as primary, making it not a compelling counter to the usage argument. Safe to say that the language is the primary topic. (non-admin closure) — Ceso femmuin mbolgaig mbung, mellohi! (投稿) 18:14, 12 June 2022 (UTC)
– The programming language is the primary topic. According to Clickstream:
Haskell Haskell_(surname) link 63 Haskell Haskell_(given_name) link 44 Haskell Haskell_(programming_language) link 852;; Maddy ♥︎(they/she)♥︎ :: talk 19:21, 4 June 2022 (UTC)
- [Weak] Oppose: There are more than three topics known as "Haskell". In fact there are lots of them, including some cities, counties, geographical features, schools and companies, and lots of individual people, for example. The programming language is a relatively WP:RECENT and relatively obscure topic that will likely fade in popularity as time moves on. As a programming language, it does not seem to be among the most popular or experiencing a major rise in usage. The cited PYPL database currently ranks it 27th among programming languages, with a share of only 0.29%. — BarrelProof (talk) 16:17, 5 June 2022 (UTC)
- The reason there's only three lines is that those are the only ones that were clicked at all during the month of April. I don't see how a 32-year-old programming language is more obscure than the rest of the links on that page – the places you named are mostly small towns and other objects of a similar notability. Those certainly don't have the global significance of a major programming language. I also don't see how Haskell's popularity in relation to other programming languages matters in this; we're discussing what people look for when searching for "Haskell". According to the data, that's the programming language, by a factor of 13. If the language fades over time, that discussion must be had then. Right now, the numbers speak for themselves. ;; Maddy ♥︎(they/she)♥︎ :: talk 16:45, 5 June 2022 (UTC)
- The reason that I think the programming language's relative popularity among programming languages is relevant is that as time moves forward, some programming languages fade away from current use and reader interest. Programmers pick which language they want to use when doing programming, and interest in the less popular ones tends to fade. — BarrelProof (talk) 19:59, 5 June 2022 (UTC)
- Just a quick clarification: the clickstream doesn't include data for links with fewer than 10 clicks for the month. These usually need accounting for, but here they're negligible: see the first graph in this Wikinav, where the vertical bar for "Haskell" represents the total views for the dab page. So about 88% of the clickthroughs from the dab page are for the programming language, which means there's a strong primary topic with respect to usage. – Uanfala (talk) 11:35, 6 June 2022 (UTC)
- I've weakened my expression of opposition, but I still think the amount of notable candidate topics of long-term significance makes it hard to declare this topic as primary. — BarrelProof (talk) 23:55, 6 June 2022 (UTC)
- Just a quick clarification: the clickstream doesn't include data for links with fewer than 10 clicks for the month. These usually need accounting for, but here they're negligible: see the first graph in this Wikinav, where the vertical bar for "Haskell" represents the total views for the dab page. So about 88% of the clickthroughs from the dab page are for the programming language, which means there's a strong primary topic with respect to usage. – Uanfala (talk) 11:35, 6 June 2022 (UTC)
- The reason that I think the programming language's relative popularity among programming languages is relevant is that as time moves forward, some programming languages fade away from current use and reader interest. Programmers pick which language they want to use when doing programming, and interest in the less popular ones tends to fade. — BarrelProof (talk) 19:59, 5 June 2022 (UTC)
- The reason there's only three lines is that those are the only ones that were clicked at all during the month of April. I don't see how a 32-year-old programming language is more obscure than the rest of the links on that page – the places you named are mostly small towns and other objects of a similar notability. Those certainly don't have the global significance of a major programming language. I also don't see how Haskell's popularity in relation to other programming languages matters in this; we're discussing what people look for when searching for "Haskell". According to the data, that's the programming language, by a factor of 13. If the language fades over time, that discussion must be had then. Right now, the numbers speak for themselves. ;; Maddy ♥︎(they/she)♥︎ :: talk 16:45, 5 June 2022 (UTC)
- Support. It is precisely because the topic is a relatively obscure and dying programming language that we should not discount the pageviews by a WP:RECENTISM factor, as we would for something like Java. Primary topic by usage is clear. -- King of ♥ ♦ ♣ ♠ 05:47, 11 June 2022 (UTC)
Standard Chartered's usage of Haskell
editI added an entry for SCB. They are perhaps the largest industrial Haskell users in the world.
I am not very experienced with citations in wikipedia, so perhaps someone could help enrichen it with these or add new ones.
- https://www.quora.com/Why-did-Standard-Chartered-need-its-own-Haskell-compiler
- https://serokell.io/blog/functional-programming-in-fintech
- https://news.ycombinator.com/item?id=11758747
— Preceding unsigned comment added by 2600:8800:6182:4990::77f3 (talk) 18:25, 10 June 2022 (UTC)
Spam?
editI have checked Haskell-cafe, and the questionable name does not appear. The other names appear on github. -- Ancheta Wis (talk | contribs) 12:57, 17 October 2023 (UTC)
Add Mercury to https://en.wiki.x.io/wiki/Haskell#Industry
editThis edit request by an editor with a conflict of interest has now been answered. |
- Specific text to be added or removed: I propose adding to the Industry section, text along the lines of: Mercury uses Haskell for its backend.
- Reason for the change: Mercury (full disclosure: my employer) is a major industrial user of Haskell. If it's helpful to list industrial users, let's list major ones as well as ones using it in a different vertical (financial services).
- References supporting change: https://serokell.io/blog/haskell-in-production-mercury
Glasserc (talk) 21:51, 10 October 2024 (UTC)
- Glasserc, I've made the edit. Thank you for following our paid editing disclosure requirements and process. Best regards, Vermont (🐿️—🏳️🌈) 04:10, 11 October 2024 (UTC)