Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

After viewing this video on InfoQ about functional design patterns I was wondering what resources are out there on design patterns for non-object orientated paradigms. There are plenty out there for the OO world (GOF, etc, etc) and for architecture (EoEAA, etc, etc) but I'm not aware of what's out there for functional, logic, or other programming paradigms. Is there anything? A comment during the video suggests possibly not - does anyone know better?

(By the way, by design patterns I don't mean language features or data structures but higher level approaches to designing an application - as discussed in the linked video)

share|improve this question

The best books I have come across that where not about OOP, but about programming in general is the Art of Computer Programming books (3 books when I bought them - now a 4th released) by Donald Knuth.

A few years back I used one of his well taught data processing algorithms to speed up an import/merge of 100,000+ records from about a 20 minutes process down to about 30 secs.... I was just not doing it the right way!

And remember, before they were called Desigh Patterns, we called them Algorithms!

share|improve this answer
Design patterns exist at a higher level than algorithms. It's been a looooong time since I read those books but I don't remember them discussing design patterns at all (I could be wrong on that). – FinnNk Nov 5 '10 at 14:21
I agree, but my point (guess I could have said it better :) ) was before OO and design patterns - this was what we had to learn to do things in a "reusable pattern like manner". Bubble sort, linked list, etc where all "patterns" of buiding blocks to solving problems. I agree Knuth book isn't about "design patterns", but was all we had at the time. – MDV2000 Nov 5 '10 at 14:38

Design patterns are largely misunderstood. As stated by the authors of the first (?) book about patterns, those 23 listed there are just examples, by no means the are the only, and specially: using them does NOT warranty good programs. One can even do terrible mistakes. It seems we are getting again to the point where Dijkstra paper "goto considered harmful" was completely took out of context... Hopefully this pattern madness will soon get it place. By no means I say patterns are bad, but real good programmers need good algorithms, good "patterns" come easy if you think. This is clearly stated in Gamma book, BTW.

share|improve this answer
I don't disagree with what you've written for the most part, but for me the main value of patterns is shared and consistent vocabulary when working in a team. I agree that algorithms are important - but so are design patterns. – FinnNk Jun 24 '11 at 10:54

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.