F# is a multiparadigm programming language built on .NET. It is a scalable, simple, succinct, type-safe, type-inferred, practical, efficiently executing functional-first/imperative/object-oriented language. F# supports both imperative and functional programming. Some key features of F# include first-class functions, type inference, pattern matching, and immutability. F# programs use functions, recursion, pattern matching, and other functional programming techniques while also allowing imperative features like object-oriented programming and side effects.