Functional programming is more than a style. While programming in a functional style is possible in many languages it's very limited, even in a language like Scala. Regarding the hybrid languages i personally think that F# is relatively good for both functional and OOP programming. There are better functional and OOP languages than F#, but i don't feel too limited doing either. Clojure may also be a good choice but i don't have enough experience with it to give an opinion.