Re: Learning Haskell and FP
[ Doug Ransom wrote about wanting a more advanced and design-oriented book on FP than "The Craft of Functional Programming" by Simon Thompson. In reply, Johan Jeuring recommended the Advanced Schools books (I concur). ] Let me add a few other recommendations, plus a vision of a book (not yet written, as far as I know) which might fit Doug's needs; I'll call it "The Design Patterns Haskell Companion" (see below). The "actual book" recommendations (all documented on haskell.org): * Introduction to Functional Programming using Haskell (second edition) by Richard Bird (Prentice Hall, ISBN: 0-13-484346-0) This book is an introductory text, like CFP, but it ramps up a bit faster and addresses design issues from a more advanced perspective (IMHO). It's certainly an excellent text, and it builds to a nice medium-sized design example (the program calculator of Chapter 12). It also leans toward a different style of design and programming, influenced by BMF/Squiggol. * Algebra of Programming by Richard Bird and Oege de Moor (Prentice Hall, ISBN: 0-13-507245-X) You might think of this as an advanced sequel to IFPH above, although it focuses more on the theory behind program calculation: categories and allegories figure prominently, and it leans even further in the direction indicated above. But there is nevertheless a lot of good material here which can serve as a foundation for design work, esp. the final chapters (7-10) on algorithms topics. * Algorithms: A Functional Programming Approach by Fethi Rabhi and Guy Lapalme (Addison-Wesley, ISBN: 0-201-59604-0) This is a concise tour through the usual gamut of data structures and algorithms topics typical of a "CS 2" course, but from a functional perspective. It is addressed more to people who are already familiar with programming and with the "standard" approach to DSA issues. It works very well as a reference but includes enough discussion to reward a straight reading. * Purely Functional Data Structures by Chris Okasaki (Cambridge University Press, ISBN: 0-521-66350-4) This one is similar to AFPA above (in being a tour of DSA topics from a functional perspective), but is a bit more advanced: e.g., Ch. 3 covers leftist heaps, binomial heaps and red-black trees. It also addresses issues of analysis in the context of lazy evaluation more thoroughly (Banker's method, etc.). The examples are written using SML, but an appendix (and a website) give Haskell versions. Of course, none of these books really answers the needs of the mature programmer/blossoming functional programmer who seeks advice on broader design issues in the context of lazy FP, esp. Haskell. This gap leads me to propose the fanciful book mentioned above: * The Design Patterns Haskell Companion by [someone(s) reading this list?] The title may be pandering a bit, but if the Smalltalk people can do it, why can't we? :) . In fact, the title is based on "The Design Patterns Smalltalk Companion" by Alpert, Brown and Woolf, a book I came across while reading up on design patterns. (It was recommended by a customer review on Amazon as being better than the original "gang of four" book.) The "Smalltalk Companion" serves an audience of mature programmers and attempts to document a number of "standard" design patterns in the specific context of Smalltalk. I'm not sure that the Haskell community would be comfortable referring to its collective design folklore in these terms, but I'm sure we would all welcome a good book written at this level which systematically addressed the motivation, rationale, trade-offs, etc. of the more advanced techniques of FP (i.e., monads, type and constructor classes, Xa-morphisms (for various X), higher-order and nested datatypes, etc.). As Johan mentioned, the "Advanced School" books serve this purpose to an extent, but they differ from my vision in two respects: first, they are collections of chapters on particular topics, written by different authors, and thus don't form a consistent, systematic review. Second, they are not (all) written from the specific perspective of design, so that for example they don't provide as much comparison and contrast *between* techniques. Of course, another motivation for such a book is that it might lend an air of credibility and maturity to the language, thus helping to promote it in the larger world. Casting it in terms of "design patterns" would certainly make sense for these purposes (and probably guarantees a certain audience, too), although I am still ambivalent about the need for Haskell to become a huge hit with mainstream audiences. In any case, if anyone is interested to write such a book, I will buy a copy :) . And if anyone wishes to collabrate on it, I am willing to help out. (I am not qualified to write it alone, and I think it would turn out best as a group effort in any case.) -- Fritz Ruehr
Re: Learning Haskell and FP
On Thu, 28 Dec 2000, Benjamin L. Russell wrote: > On Thu, 28 Dec 2000 16:48:57 +0100 > Frank Atanassow <[EMAIL PROTECTED]> wrote: > > i r thomas wrote (on 28-12-00 12:50 +1000): > > >> "Furuike ya! Kawazu tobikomu mizu no oto." --Matsuo Basho > > > > > "(It's) An old pond! The sound of water steadily > > dripping in..." > >"[It's] An old pond! The sound of water as the frog jumps in" Keeping with the minimalistic spirit of Haskell: pond frog plop! -- by James Kirkup, an English poet -- Supposedly from Hiroaki Sato collection of 80 English translations -- of this haiku. -- 3 down 77 to go.. Jan ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: Learning Haskell and FP
On Thu, 28 Dec 2000 16:48:57 +0100 Frank Atanassow <[EMAIL PROTECTED]> wrote: > i r thomas wrote (on 28-12-00 12:50 +1000): > > Unforunately, the " Gentle Introduction To Haskell" > that haskell.org links to is not a very useful > introduction. > > I am getting more out of Rex Paige's Two Dozen Short > Lessons in Haskell. ( I am studying Haskell and C# on my > own in my spare time as break from my medical practice ). > > What did you find unuseful about GITH? How could it be > improved? What were > your expectations for it? What was more useful about Rex > Paige's notes? I read part of _GITH,_ too; while it included information necessary for an introduction, the style seemed rather terse and dry, and rather difficult to follow at times, and read more like a manual with many technical details than a tutorial brimming with motivational material, especially when compared to _The Haskell School of Expression_ ("_HSE_" in the sequel). In particular, it could have had some more interesting examples or some more commentary, both of which made _HSE_ so fascinating. > >> "Furuike ya! Kawazu tobikomu mizu no oto." --Matsuo > Basho > > > > Translation please ! > > Is it OK if I show off and steal some thunder? :) > > "(It's) An old pond! The sound of water steadily > dripping in..." Actually, if I may add, the translation I remember was the following: "[It's] An old pond! The sound of water as the frog jumps in" "Kawazu" means "frog," and "tobikomu" means "(to) jump in." --Ben -- Benjamin L. Russell [EMAIL PROTECTED] [EMAIL PROTECTED] "Furuike ya! Kawazu tobikomu mizu no oto." --Matsuo Basho ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: Are anonymous type classes the right model at all? (replying to Re: Are fundeps the right model at all?)
George Russell <[EMAIL PROTECTED]> writes: > I'm writing, but that shouldn't be too hard to tweak. In particular I have > followed SML in using "." to express qualification by something, even though > Haskell already used "." for something else, because I can't be bothered right > now to dig up a better symbol. This is why all non S-exp like lanaguage are doomed to progressive syntactic cancer as the useful parts of operator name space and syntax space become progressively polluted and mutated by one fad after another. -- Julian Assange|If you want to build a ship, don't drum up people |together to collect wood or assign them tasks [EMAIL PROTECTED] |and work, but rather teach them to long for the endless [EMAIL PROTECTED] |immensity of the sea. -- Antoine de Saint Exupery ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: Haskell newsgroup
On Thu, Dec 28, 2000 at 06:53:08PM +1000, i r thomas wrote: > How about starting a Haskell newsgroup ? > The closest seems to be comp.lang.functional. There is a Haskell IRC channel on EfNet. I've been fielding Haskell questions there with Albert Lai and Ada Lim for several months. There has also been Haskell-related activity on OpenProjects Network #lisp. comp.lang.functional seems to be inclusive enough to obviate the need for a dedicated newsgroup. Cheers, Bill -- "And who knows, if you try it, maybe you find out that you like SM(L)? ;)" -- Markus Mottl on comp.lang.functional ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
RE: Haskell newsgroup
On Thu, 28 Dec 2000, Doug Ransom wrote: > That would only work if the haskell mailing list was either delete or > mirrored onto a newsgroup. I would prefer a newsgroup myself for bandwidth > reasons. > And I prefer a mailing-list. It's hard to access newsgroups from the Technion, and Deja-news seems to be little help when it comes to posting messages. Regards, Shlomi Fish -- Shlomi Fish[EMAIL PROTECTED] Home Page: http://t2.technion.ac.il/~shlomif/ Home E-mail: [EMAIL PROTECTED] The prefix "God Said" has the extraordinary logical property of converting any statement that follows it into a true one. ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
RE: Learning Haskell and FP
Who are the audience for the books on Advanced Functional Programming? Academics with a theoretical CS background or someone with just a bit of understanding of FP? Ideally, I would like a course suited for someone who has completed a basic FP course. > -Original Message- > From: Johan Jeuring [mailto:[EMAIL PROTECTED]] > Sent: Thursday, December 28, 2000 6:06 AM > To: Doug Ransom > Cc: [EMAIL PROTECTED] > Subject: Re: Learning Haskell and FP > > > >Is there a good textbook on Functional Programming which > starts from a base > >point similar to "The craft of Functional Programming" but > more advanced in > >terms of introducing necessary topics like Category theory, > catamorphisms, > >monads, etc? I would find such a book very useful, especially if it > >concentrated on lazy functional programming. > > You might want to have a look at the series of three books on Advanced > Functional > Programming, published in LNCS, as LNCS 925, 1129, and 1608. I would > probably start with 925, which introduces monads, parser & > pretty-printing > combinators, monadic catamorphisms, constructor classes, etc. > > -- Johan Jeuring > ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
RE: Haskell newsgroup
That would only work if the haskell mailing list was either delete or mirrored onto a newsgroup. I would prefer a newsgroup myself for bandwidth reasons. > -Original Message- > From: i r thomas [mailto:[EMAIL PROTECTED]] > Sent: Thursday, December 28, 2000 12:53 AM > To: [EMAIL PROTECTED] > Subject: Haskell newsgroup > > > How about starting a Haskell newsgroup ? > The closest seems to be comp.lang.functional. > > > ___ > Haskell mailing list > [EMAIL PROTECTED] > http://www.haskell.org/mailman/listinfo/haskell > ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: Learning Haskell and FP
i r thomas wrote (on 28-12-00 12:50 +1000): > Unforunately, the " Gentle Introduction To Haskell" that haskell.org links to is not >a very useful introduction. > I am getting more out of Rex Paige's Two Dozen Short Lessons in Haskell. ( I am >studying Haskell and C# on my own in my spare time as break from my medical practice >). What did you find unuseful about GITH? How could it be improved? What were your expectations for it? What was more useful about Rex Paige's notes? >> "Furuike ya! Kawazu tobikomu mizu no oto." --Matsuo Basho > > Translation please ! Is it OK if I show off and steal some thunder? :) "(It's) An old pond! The sound of water steadily dripping in..." -- Frank Atanassow, Information & Computing Sciences, Utrecht University Padualaan 14, PO Box 80.089, 3508 TB Utrecht, Netherlands Tel +31 (030) 253-3261 Fax +31 (030) 251-379 ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: Learning Haskell and FP
>Is there a good textbook on Functional Programming which starts from a base >point similar to "The craft of Functional Programming" but more advanced in >terms of introducing necessary topics like Category theory, catamorphisms, >monads, etc? I would find such a book very useful, especially if it >concentrated on lazy functional programming. You might want to have a look at the series of three books on Advanced Functional Programming, published in LNCS, as LNCS 925, 1129, and 1608. I would probably start with 925, which introduces monads, parser & pretty-printing combinators, monadic catamorphisms, constructor classes, etc. -- Johan Jeuring ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Haskell newsgroup
How about starting a Haskell newsgroup ? The closest seems to be comp.lang.functional. ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell
Re: Learning Haskell and FP
>While it may not be advanced or mathematical enough for your needs, you may wish to >read _The Haskell School of Expression: Learning Functional Programming through >Multimedia,_ by Paul Hudak. This is also an introductory book on functional >programming, with a special focus on Haskell, although the examples used are mainly >from multimedia. Is there an online version of Hudak's book ? ( For example Bruce Eckel has online versions of all his books available online as well as in print ) >"Furuike ya! Kawazu tobikomu mizu no oto." --Matsuo Basho Translation please ! Basho is my favorite Japanese poet. Unfortunately my Japanese is at the Ohio level.. ( ohiogozaimazu) ___ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell