> For the complete documentation index, see [llms.txt](https://elixir.petrolidas.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://elixir.petrolidas.com/why-functional-programming.md).

# Why functional programming?

For some reason, I really love functional programming. Although my whole career has been involving object oriented programming and the imperative paradigm: Delphi, C#, Java, Ruby etc.

Ever since I met Elixir, something is attracting me to it. The idea of immutability with functions that always return the same output given the same input seems so good.

But overall, I wasn't sure why I was drawn to this.

### My 1998 thesis

Then I remembered my 1998 thesis:

<figure><img src="/files/zeH6fN3RqSLdqfT9VhuX" alt=""><figcaption><p>ZTrans: A Semi-Automatic Translator from Z to SML</p></figcaption></figure>
