Ruby supports functional programming principles through features like blocks, lambdas, and immutable objects. Some advantages of a functional style include cleaner code with no side effects, referential transparency allowing parallelization and easier debugging, and the use of recursion instead of loops. While Ruby is an imperative language, applying concepts like map, filter, reduce, and avoiding mutable state can make code more clear and maintainable.