Peter Norvig's slide on Design Patterns and Dynamic Programming from 1996.
Simon Peyton Jones, published by Prentice Hall, 1987.
My 1987 book is now out of print, but it is now available online in its entirety.
unctions are the wonderful and powerful building blocks of computer programs. Functions allow you to break code down into simpler, more manageable steps. They also allow you to break programs into reusable parts -- parts that are both reusable within the program and in other programs as well. In this article, learn how to create new functions at runtime based on templates, how to create functions
By Shriram Khrishnamurthi, Brown University. Shriram Khrishnamurthi is the author of "How To Design Programs", MIT Press, 2001.
This talk on scheme was one of the most convincing and persuasive talk on why functional languages are awesome. I certainly made me a believer.