ðŸĨWelcome!

Functional programming can be an intimidating subject to approach. Your first encounter with it might be during CS2030S or hearing about Haskell. While using functional programming involves a shift in the way you think of problems, it does not have to be as intimidating as it seems.

In this guide, I will be diving into the application of functional programming in web development using my favorite programming language: Elixir!

Why Elixir?

Besides being my favorite programming language, I think Elixir provides an incredibly gentle introduction to core functional programming language principles. It does not have an overly strict type system or mandate pure functions for everything. While these may go against the very purist idea of functional programming, it lowers the barrier to entry to functional programming and applying it to real-world projects.

Using this guide

This guide aims to...

✅ Allow you to understand fundamental Elixir syntax to follow along

✅ Give you a new perspective on what functional programming is

✅ Develop a basic intuition for solving problems in a "functional programming" way

This guide does not...

❌ Try to convince you that functional programming is by any means easier or superior to other paradigms

❌ Provide a deep explanation of various constructs in Elixir like macros and IO

❌ Teach you everything about Phoenix, for that, please use the official documentation instead

❌ Claim that Elixir is the only production ready functional programming language, it is just a personal preference!

Who am I?

I'm Jia Hao, a computer science undergraduate from the National University of Singapore and a coreteam member of NUS Hackers. I started using Elixir in 2020 for Advent of Code and fell in love with it. Since then, I have been using Elixir for personal projects and have written several articles about Elixir (some of which have been featured on newsletters!). I also did my summer 2023 internship using Elixir at Betafi where I was using Elixir for full-stack development of the web portal and was exposed to working with Elixir on a production level!

Contact me

If you have enjoyed reading this guide, wish to ask any clarifying questions, spotted an issue with the guide, or just wanna chat, do drop me an email at woojiahao1234@gmail.com.

Last updated