You can do functional programming in most languages. The good thing about Haskell is that it does not compromise. Scala forces you to have a lot of self-discipline to not do bad stuff.
That's correct. We might as well call C functional if that's the criterium.
Functional programming entails two things:
2 does imply 1, but let's ignore that for now.
If you don't have the guarantee of 1, there are a lot of properties that just do not hold for you program. You might call it functional style programming, but calling it functional is incorrect.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.