Haskell wiki: most popular pages

Hello haskell-cafe, The http://haskell.org/haskellwiki/Special:Popularpages page lists most popular pages on haskell wiki. I think this list is very useful because it shows us what are the questions about Haskell people most interested and gives us hints what should be improved in first place. The only catch is that most of popular pages are just ones listed on the title page. But nevertheless... On the other side, we can simplify title page by omitting links to page that are of little interest for casual readers (such as History). We can also add here links to most popular pages, such as GHC and "Hitchhikers guide". Below is beginning of this list: Haskell (252,505 views) Introduction (50,091 views) Libraries and tools (41,864 views) Books and tutorials (40,040 views) Language and library specification (32,773 views) Haskell in practice (31,698 views) Implementations (24,141 views) GHC (20,634 views) Haskell in 5 steps (16,707 views) Learning (14,088 views) Hitchhikers guide to Haskell (13,191 views) Future (12,754 views) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

On Thu, Aug 17, 2006 at 01:55:47AM +0400, Bulat Ziganshin wrote:
Hello haskell-cafe,
The http://haskell.org/haskellwiki/Special:Popularpages page lists most popular pages on haskell wiki. I think this list is very useful because it shows us what are the questions about Haskell people most interested and gives us hints what should be improved in first place. The only catch is that most of popular pages are just ones listed on the title page. But nevertheless... On the other side, we can simplify title page by omitting links to page that are of little interest for casual readers (such as History). We can also add here links to most popular pages, such as GHC and "Hitchhikers guide". Below is beginning of this list:
Haskell (252,505 views) Introduction (50,091 views) Libraries and tools (41,864 views) Books and tutorials (40,040 views) Language and library specification (32,773 views) Haskell in practice (31,698 views) Implementations (24,141 views) GHC (20,634 views) Haskell in 5 steps (16,707 views) Learning (14,088 views) Hitchhikers guide to Haskell (13,191 views) Future (12,754 views)
A link to "A tour of the Haskell Prelude" might be very useful for newbies (like me ;-) Tamas

Hello Tamas, Thursday, August 17, 2006, 11:14:22 AM, you wrote:
Haskell (252,505 views) Introduction (50,091 views) Libraries and tools (41,864 views) Books and tutorials (40,040 views) Language and library specification (32,773 views) Haskell in practice (31,698 views) Implementations (24,141 views) GHC (20,634 views) Haskell in 5 steps (16,707 views) Learning (14,088 views) Hitchhikers guide to Haskell (13,191 views) Future (12,754 views)
A link to "A tour of the Haskell Prelude" might be very useful for newbies (like me ;-)
btw, it's listed on Learning page but it seems that newbies don't very much like it, preferring to go to Language Specification or at least Books page. what you think - why it is so unpopular? (i think that language specification is the last thing Haskeller should read, just when he goes to implementing his own private Haskell compiler :D ) -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

Hi Bulat, The link from http://haskell.org/haskellwiki/Learning (to http://www.cs.uu.nl/~afie/haskell/tourofprelude.html) is dead, so is the one from Books_and_Tutorials. Furthermore, 1. I would move it from the Reference to the Introduction section. A reference is something you look at when you know what you are looking for. Also, it is at the bottom of the page, few would scroll that far. 2. How would newbies know what the Prelude is? Some tutorials mention it, but it is not emphasized that most functions they use come from the Prelude. Since they do not know that they need the Prelude, they are not interested in a tour of it. Best, Tamas On Thu, Aug 17, 2006 at 01:01:43PM +0400, Bulat Ziganshin wrote:
Hello Tamas,
Thursday, August 17, 2006, 11:14:22 AM, you wrote:
Haskell (252,505 views) Introduction (50,091 views) Libraries and tools (41,864 views) Books and tutorials (40,040 views) Language and library specification (32,773 views) Haskell in practice (31,698 views) Implementations (24,141 views) GHC (20,634 views) Haskell in 5 steps (16,707 views) Learning (14,088 views) Hitchhikers guide to Haskell (13,191 views) Future (12,754 views)
A link to "A tour of the Haskell Prelude" might be very useful for newbies (like me ;-)
btw, it's listed on Learning page but it seems that newbies don't very much like it, preferring to go to Language Specification or at least Books page. what you think - why it is so unpopular?
(i think that language specification is the last thing Haskeller should read, just when he goes to implementing his own private Haskell compiler :D )
-- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

Hello Tamas, Thursday, August 17, 2006, 2:29:26 PM, you wrote:
The link from http://haskell.org/haskellwiki/Learning (to http://www.cs.uu.nl/~afie/haskell/tourofprelude.html) is dead, so is the one from Books_and_Tutorials.
thank you. i have fixed both. btw, you can register himself on the wiki at http://haskell.org/haskellwiki/?title=Special:Userlogin and get rights to edit it yourself
1. I would move it from the Reference to the Introduction section. A reference is something you look at when you know what you are looking for. Also, it is at the bottom of the page, few would scroll that far.
2. How would newbies know what the Prelude is? Some tutorials mention it, but it is not emphasized that most functions they use come from the Prelude. Since they do not know that they need the Prelude, they are not interested in a tour of it.
i agree with both points. it's a really helpful thing, with all its coloring, examples and even definitions. and it's of interest for very beginning Haskellers, may be even those who don't know anything about Haskell. it's just a pleasure to see all those one-line definitions and feel how power the language should be to allow such cool things. The only problem that makes it harder to learn is what functions are sorted in alphabetic order instead of be grouped by theme (math, lists, chars and strings, ordering, i/o, higher-order funcs and their applications) so we can move this to the Tutorials column, make better description (how about "Tour of Haskell Prelude (basic functions)"?) and i will try to reorganize it by splitting into the thematic sections -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

[...] it's just a pleasure to see all those one-line definitions and feel how power the language should be to allow such cool things.
It is indeed. I find these explicit definitions often much more instructive than purely implicit definitions. But, call me a nitpicker, some of the definitions are still a bit longish for my taste. For example: break :: (a -> Bool) -> [a] -> ([a],[a]) break p xs = span http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... p' xs where p' x = not http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... (p x) could be written as: break p = span (not . p) or: and xs = foldr http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... (&&) True xs as: and = foldr http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... (&&) True While the second case is pure nitpicking, I find that the point-free definition is much easier to read in the first case. Any reason to use the point-wise notation there? Is it considered to be easier to read or understand?

Oh my lord, I love how my newreader obfuscates my posts.
= span http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... p' xs where p' x = not http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... (p x)
= span p' xs where p' x = not (p x)
could be written as:
break p = span (not . p)
or:
and xs = foldr http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... (&&) True xs and xs = foldr (&&) True xs
as: and = foldr http://undergraduate.csse.uwa.edu.au/units/230.301/lectureNotes/tourofprelud... (&&) True
and = foldr (&&) True Sorry, Tim

Hello Tim, Friday, August 18, 2006, 4:26:46 PM, you wrote:
break p = span (not . p)
it's definitely better
and = foldr (&&) True
i think that definitions with omitted arguments can be more hrd to understand to newbie haskellers, especiallyones who not yet know the language. as Tamas suggests, this page can be used to present to such newbies taste of Haskell so listing all the parameters may allow to omit unnecessary complications in this "first look into language" -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

Bulat Ziganshin wrote:
i think that definitions with omitted arguments can be more hrd to understand to newbie haskellers, especiallyones who not yet know the language. as Tamas suggests, this page can be used to present to such newbies taste of Haskell so listing all the parameters may allow to omit unnecessary complications in this "first look into language"
I agree with that. The and = ... wasn't really an improvement over and xs = ... xs, and if the later is easier to read that's good. Btw.: What happened to isSpace, toLower and toUpper (, from the tutorial)? (I)sSpace must be there for words anyway, so I can't see why it's missing. (T)oLower and toUpper might have some subleties with internationalization and stuff, but they would be useful for me even as a poor man's version which can just convert "A-Z", "a-z" and no umlauts. I feel that Haskell is missing some basic string manipuation functions, like - replacing all occurances of one substring (or sublist) with another string (or list). - tokenize a string by an arbitrary delimeter I know many of these functions can be written in Haskell without much effort. But I don't really want to "invent" isSpace for any program. Tim

On Aug 18, 2006, at 12:23 PM, Tim Walkenhorst wrote:
Bulat Ziganshin wrote:
i think that definitions with omitted arguments can be more hrd to understand to newbie haskellers, especiallyones who not yet know the language. as Tamas suggests, this page can be used to present to such newbies taste of Haskell so listing all the parameters may allow to omit unnecessary complications in this "first look into language"
I agree with that. The and = ... wasn't really an improvement over and xs = ... xs, and if the later is easier to read that's good.
Btw.:
What happened to isSpace, toLower and toUpper (, from the tutorial)? (I)sSpace must be there for words anyway, so I can't see why it's missing. (T)oLower and toUpper might have some subleties with internationalization and stuff, but they would be useful for me even as a poor man's version which can just convert "A-Z", "a-z" and no umlauts.
http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data- Char.html
I feel that Haskell is missing some basic string manipuation functions, like - replacing all occurances of one substring (or sublist) with another string (or list). - tokenize a string by an arbitrary delimeter
I know many of these functions can be written in Haskell without much effort. But I don't really want to "invent" isSpace for any program.
Tim
Rob Dockins Speak softly and drive a Sherman tank. Laugh hard; it's a long way to the bank. -- TMBG

I feel that Haskell is missing some basic string manipuation functions, like - replacing all occurances of one substring (or sublist) with another string (or list). - tokenize a string by an arbitrary delimeter
This came up not too long ago: http://www.haskell.org/pipermail/haskell-cafe/2006-July/thread.html#16559 Ironically this thread talks about how the same topic came up two years ago and no consensus was reached. So I made a skeleton page to discuss/maybe reach consensus on this. Please flesh it out and hack it to pieces! http://www.haskell.org/haskellwiki/Prelude_function_suggestions
I know many of these functions can be written in Haskell without much effort.
Let the work begin (record opinions and any semblance of consensus). Jared. -- http://www.updike.org/~jared/ reverse ")-:"

Hello Tim, Friday, August 18, 2006, 8:23:16 PM, you wrote:
I agree with that. The and = ... wasn't really an improvement over and xs = ... xs, and if the later is easier to read that's good.
the main goal here is readability, of course
What happened to isSpace, toLower and toUpper (, from the tutorial)?
it seems that this list is incomplete. i don't found a lot of I/O routines, such as interact or getContents one more reason to move it to wiki :)
I feel that Haskell is missing some basic string manipuation functions, like - replacing all occurances of one substring (or sublist) with another string (or list). - tokenize a string by an arbitrary delimeter
MissingH library contains such routines, although it is gpl'ed there is a (lazy) movement to establish such library, but noone still started it. well, to write something new open-source programmer just opens project and waits for contribution :) who is darcs maintainer on haskell.org? -- Best regards, Bulat mailto:Bulat.Ziganshin@gmail.com

On Fri, Aug 18, 2006 at 04:46:14PM +0400, Bulat Ziganshin wrote:
Hello Tim,
Friday, August 18, 2006, 4:26:46 PM, you wrote:
break p = span (not . p)
it's definitely better
and = foldr (&&) True
i think that definitions with omitted arguments can be more hrd to understand to newbie haskellers, especiallyones who not yet know the language. as Tamas suggests, this page can be used to present to such newbies taste of Haskell so listing all the parameters may allow to omit unnecessary complications in this "first look into language"
I think I learned to understand and appreciate omitted arguments from Hal Daume's Yet Another Haskell Tutorial. The exercises there are just great. Tamas

Excerpt from Bulat Ziganshin :
i think that definitions with omitted arguments can be more hrd to understand to newbie haskellers, especiallyones who not yet know the language. as Tamas suggests, this page can be used to present to such newbies taste of Haskell so listing all the parameters may allow to omit unnecessary complications in this "first look into language"
Excerpt from Tamas K Papp
I think I learned to understand and appreciate omitted arguments from Hal Daume's Yet Another Haskell Tutorial. The exercises there are just great.
Hi for what it's worth, having recently {still"} trying to grasp all the nuances of this wonderful Language and coming from an imperative world where the Variable is King... It would be a really tough stretch on first look, but as Tamas said, the "Yet Another Haskell Tutorial" herein mentioned, was along with some other places that the whole point free concept was put forth, were immediately adopted by me for many uses... I think any introductory material, would do well to show the conventional method with explicit arguments and then followed with a point free version if applicable. As to the base discussion, I feel that any and all string manipulation functions that are missing would be a great thing to add. I came from a backgound of using Icon and Unicon, which are offshoots of the earlier language Snobol. Snobol's pattern matching and such on strings is still unequaled, but Icon/Unicon, both have a facility that is called string scanning which makes many things that involve search and replacement trivial. It has some things that I have already written using just high level haskell, no C or C++ foreign functions with wrappers or anything, to emulate such things as the left, right, and center functions that will give back the string padde to the left or right, and the center function is merely padded to the left and right based on the total field width given. Also on the same note, currency functions to do the same with string representations of US dollar amounts and such, rounding to to decimal places first and then adding leading zero, and commas for the thousands..{I think I added that in?? not sure}. The functions to quickly substitute one word for another are a little more problematical, as the most intuitive first step is to use the function words, but if things are using more than one space between words that is lost in any easily built function that just breaks up the words, makes the substitutions to the resulting list, and then goes on to introduce the spaces back in.. as the original count of spaces is lost.. would need to make a new function that breaks up a stream into words that are made up of non-whitespace chars, and also the subsequent whitespace ones.. so that when put back together the spacing is the same... more trouble with that if the new replacement word is longer or shorter.. if it is column oriented data that would get messed up even worse..... okay.... done with the rambling, gene
participants (6)
-
Bulat Ziganshin
-
Gene A
-
Jared Updike
-
Robert Dockins
-
Tamas K Papp
-
Tim Walkenhorst