If it doesn't have tail call optimizations then it's about as far away from functional as you can get. They're essential for basic functional abstraction.
Nope. Scala allows for and promotes for functional programming with higher order functions all over the place, its more powerful type system, immutability, practices, standard library, and much more.
Having lambdas makes you about as functional as C++ these days.
Functional/non-functional is a fuzzy distinction but C# is definitely not a functional language.
> I think the poster means that c# has many functional features
Yeah just like C++ or Java now have "functional features". That doesn't make them functional languages, they don't promote functional programming to the extent that Scala does.
Aside from that, their type systems are much too unexpressive to allow for the style functional programmers are used to, not to mention they promote mutability.
Do you have a link that would educate me about some of these problems? Package management interests me because I might find myself developing a package manager in the near future, but I don't know much about it.
Not supporting multiple versions of the same software is something that I identified as a problem though.