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. |
Please 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)
Could 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)
The 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)
Citations for parallel Haskell variants were requested.
After 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)
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)
The "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)
The 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)
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)
Does 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)
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.
Perhaps 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)
So 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.wikipedia.org/wiki/List_of_programming_languages
- Tacobake
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).
I 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)
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)
Guys, 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)
Hi 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)
On 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)
Proposal: "Haskell served to standardize many of the functional programming concepts proposed, in an open standard, before 1991."
I 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 < v0])).concat([v0]]).concat(quick_sort(v.filter(b => b >= v0]))) : []
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)
Andreasabel ( talk) 08:48, 27 November 2019 (UTC)
As 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)
Someone 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)
#!/bin/
DokReggar
-talk
08:47, 13 January 2014 (UTC)Since a small edit war seems to have started, I'll explain why I did the initial revert on this:
-- Ørjan ( talk) 06:26, 1 November 2015 (UTC)
Hello 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:
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.
Cheers.— cyberbot II Talk to my owner:Online 11:08, 25 February 2016 (UTC)
Hello 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:
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.
Cheers.— InternetArchiveBot ( Report bug) 02:58, 31 October 2017 (UTC)
Done feel free to improve these edits. -- Ancheta Wis (talk | contribs) 19:05, 29 September 2018 (UTC)
A 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 America 1000 00:41, 26 March 2019 (UTC)
Any 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)
A 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)
Following 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:
Applicative
into the Prelude and making it a superclass of Monad
(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 that Functor
had never been a superclass of Monad
. Some functions that previously operated over monads, such as sequence
, were also generalized to applicative functors.sequence
over the type classes Foldable
and Traversable
, which were likewise added to the Prelude (GHC 7.10).fail
(GHC 8.0, enabled by default in 8.6), which was added to a new class MonadFail
. 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 from Monad
and MonadFail
added to the Prelude in GHC 8.8, breaking compatibility for any code that defined fail
in a Monad
instance.Monoid
into
Semigroup
, representing types with an associative binary operation without necessarily having an identity element, and Monoid
itself as a subclass, now containing only the identity (GHC 8.4).It 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)
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, mello hi! ( 投稿) 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)
I 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.
— Preceding unsigned comment added by 2600:8800:6182:4990::77f3 ( talk) 18:25, 10 June 2022 (UTC)
I 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)
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. |
Please 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)
Could 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)
The 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)
Citations for parallel Haskell variants were requested.
After 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)
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)
The "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)
The 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)
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)
Does 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)
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.
Perhaps 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)
So 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.wikipedia.org/wiki/List_of_programming_languages
- Tacobake
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).
I 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)
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)
Guys, 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)
Hi 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)
On 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)
Proposal: "Haskell served to standardize many of the functional programming concepts proposed, in an open standard, before 1991."
I 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 < v0])).concat([v0]]).concat(quick_sort(v.filter(b => b >= v0]))) : []
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)
Andreasabel ( talk) 08:48, 27 November 2019 (UTC)
As 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)
Someone 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)
#!/bin/
DokReggar
-talk
08:47, 13 January 2014 (UTC)Since a small edit war seems to have started, I'll explain why I did the initial revert on this:
-- Ørjan ( talk) 06:26, 1 November 2015 (UTC)
Hello 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:
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.
Cheers.— cyberbot II Talk to my owner:Online 11:08, 25 February 2016 (UTC)
Hello 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:
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.
Cheers.— InternetArchiveBot ( Report bug) 02:58, 31 October 2017 (UTC)
Done feel free to improve these edits. -- Ancheta Wis (talk | contribs) 19:05, 29 September 2018 (UTC)
A 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 America 1000 00:41, 26 March 2019 (UTC)
Any 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)
A 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)
Following 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:
Applicative
into the Prelude and making it a superclass of Monad
(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 that Functor
had never been a superclass of Monad
. Some functions that previously operated over monads, such as sequence
, were also generalized to applicative functors.sequence
over the type classes Foldable
and Traversable
, which were likewise added to the Prelude (GHC 7.10).fail
(GHC 8.0, enabled by default in 8.6), which was added to a new class MonadFail
. 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 from Monad
and MonadFail
added to the Prelude in GHC 8.8, breaking compatibility for any code that defined fail
in a Monad
instance.Monoid
into
Semigroup
, representing types with an associative binary operation without necessarily having an identity element, and Monoid
itself as a subclass, now containing only the identity (GHC 8.4).It 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)
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, mello hi! ( 投稿) 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)
I 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.
— Preceding unsigned comment added by 2600:8800:6182:4990::77f3 ( talk) 18:25, 10 June 2022 (UTC)
I 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)