While imperative languages often have some functional aspects, they're not "pure." And functional programming is all about purity.
You should try to learn Haskell if you ever get a chance. I'm about 2 weeks into it and it is blowing my mind coming from Ruby and Python. Normally I can pick up languages pretty easily, but this.... this is just insane. It is like learning to program all over again. You aren't getting the full experience if you're just using a few functional aspects of a imperative language.
Dude! I finally broke the 640k conventional memory barrier with QEMM386. You should try it!
"And remember: Evil will always prevail, because Good is dumb." -- Spaceballs