>>29
As someone whose code is mostly functional, wether I write it in Lisp or in C, I don't see how this matters. C is an imperative language, but you can write in a functional manner in any language. Use clear inputs, don't modify inputs in the function, unless such an argument is marked as an output parameter (it's not uncommon in C to use output parameters as there's no multiple return values in C), don't cause any side-effects to the outside environment inside the function, unless that's the function's purpose to begin with. Don't have your function depending on internal state that's not part of the argument if you can help it(for example, it cannot be helped for things like the PRNG or I/O). It makes testing code easier and you end up with more robust programs. You can apply these ideas to any language worth its salt.
However, using a purely functional language that forces you to emulate state when you need state seems more like S&M to me.