Functional programming avoids mutable state and side effects by treating computation as the evaluation of mathematical functions. In Golang, functional programming principles like immutable data, higher-order functions, and recursion can be applied to write more elegant, concise and testable code, though it lacks features like tail call optimization. Writing functional style enhances code quality
![Functional go](https://cdn-ak-scissors.b.st-hatena.com/image/square/6cdfafcae2a288f04601592de64151c6d66f47ec/height=288;version=1;width=512/https%3A%2F%2Fcdn.slidesharecdn.com%2Fss_thumbnails%2Ffunctionalgo-150928012609-lva1-app6892-thumbnail.jpg%3Fwidth%3D640%26height%3D640%26fit%3Dbounds)