Functional Pearls

Don Stewart has collected (all?) the Functional Pearls from JFP, ICFP, and elsewhere onto http://www.haskell.org/haskellwiki/Research_papers/Functional_pearls. Most of the are available online and are linked to from here. If you know what a Functional Pearl is, then you will enjoy this page, if not, you are in for a treat. Finally, if you know where any of the offline ones are publically available on the internet, that would be useful (just update the page).

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

It occurs to me that some of

It occurs to me that some of these pearls were discussed here on LtU. Some of these discussions are quite interesting. It might make sense to link to these discussions from the wiki page.

JFP editorial on Functional Pearls

I've recently taken over the JFP pearls column from Richard Bird, and I'd welcome pearly submissions. There's an (open-access, I hope) editorial on what I'm looking for at JFP, and a copy on my webpage. Please do feel free to contact me if you'd like to discuss a contribution.

xyz, Scrap Your Zippers is broken

443 forbidden access exception.

I've never heard of that paper before, and wanted to read it. Just the name sounds interesting. I really loved reading Scrap your nameplate and Scrap your boilerplate, and also Scrap more boilerplate and Scrap your boilerplate with class.

But also, not all "functional pearls" are truly pearls, IMHO. I wonder if anyone else feels the same? When I first began functional programming, I was under the impression "functional pearl" meant "as good as it gets". Later, I realized it meant, "as good as the compiler, compiler extensions, language and language extensions allow".

on citeseerx

Functional Pearls

There's a lot of really beautiful functional code written in many languages that appears in textbooks. How about Newton's method for approximating the derivative of continuously differentiable equations in Scheme, from the first chapter of SICP? Or Bavel's method for finding graph isomorphisms by isolating generators, from Theory Of Automata?