# 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="https://722931016-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FDUq5E45vIeUDn4lY3Psn%2Fuploads%2FBt6aWboQUu2jCtlOlSVH%2Fpamiridis-ztrans.jpeg?alt=media&#x26;token=19b77688-4a53-4af3-a42b-270f4736a526" alt=""><figcaption><p>ZTrans: A Semi-Automatic Translator from Z to SML</p></figcaption></figure>
