I'm wondering if recursion v. iteration might be a better test than OO v. functional.
I'd say it's probably more dynamic typing versus static typing. Dynamic typing matches up very well with the sort of fuzzy proofs that occur in analysis ("well this is less than that, and that is less than the other, so this is less than the other by a little bit" seems close to "quacks like a duck"), and static typing seems very much like an algebraic idea.
But, as someone working on a math masters, I can say that I prefer analysis and really like dynamically typed languages, so this might just be my pet theory of matching the world to myself.