
Bob Davison wrote:
I thought calculus was about differentiation and integration and was very surprised to discover that there were such things as 'predicate calculus', 'propositional calculus', and various flavours of 'lambda calculus'.
The stuff involving rates of change, integration, and differentiation, is often called differential calculus, or simply "the calculus". But "calculus" more generically refers to any system of calculation. So the lambda calculus, the various flavours of calculus in symbolic logic, and so on, don't have the word "calculus" in their names because they're related to differential calculus or to each other, but because they're systematic ways to approach calculation.
I have no idea how much of this stuff I need to know
Very little, but exactly how much, and of what, depends on what you want to do. Having a slight grounding in algorithm analysis, an appreciation of induction, and a bottomless pot of coffee is enough to get started.
but I would certainly like to be able to learn more of this facinating new world and not just be content with learning how to write a Haskell program.
If you want a good grounding in thinking about functional code, I like Okasaki's "Purely Functional Data Structures". Graham, Knuth and Patashnik's "Concrete Mathematics" is a good CS-related book that covers a lot of ground at a leisurely pace.