On Tuesday 14 May 2002 07:22 pm, Andrew J Bromage wrote: > On the other hand, it's an exciting time to do engineering in > declarative languages, because we can invent the design patterns and > discover what the good habits are as we go along.
This is very interesting to me, as I have a great deal of experience applying and documenting patterns in object-oriented environments. From the research I've done to date, functional programming provides enough of a paradigm shift that there are significant new patterns/idioms (you choose the lingo) that need to be documented.* I can think of several off of the top of my head: - Tying the knot - Phantom types - Appropriate use of strictness in data structures - The excellent techniques used in Edison for parameterization Etc. With that in mind, I'd be interested in starting such a documentation project. And by this I mean something more formal than the existing Wiki, perhaps in hyperlinked/book form. In this way, you could download a bunch of patterns with good example code, and get a head start on understanding proven approaches for structuring systems, etc. So, if you have any patterns, or better yet, source code that demonstrates an approach or technique, please send them my way. I will put something together on this in the next couple of weeks, and let everyone know where to find it. And, if there are no objections, I'll probably harvest some from the Wiki and various other papers that have them buried beneath formalisms. :) If anyone has any suggestions, I'd love to hear them. Regards, - j * To avoid any pattern debates: I personally believe that patterns are especially useful for getting novices up to speed on concepts that might not be readily apparent at first glance. Rather than treating patterns as anything "special" in their own right, for me they're simply a really convenient way of teaching people new and interesting concepts. -- The river is moving. The blackbird must be flying. _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell