I first encountered Haskell in my Programming Languages class at Harvey Mudd. In that class, my experience felt like just a constant cycle of:

1. Write code that doesn't compile

2. Make arbitrary changes until it compiles

3. goto 1

I personally struggled with Haskell a lot, and never felt I understood what was going on. I did okay in the class and learned what I needed to learn, so I didn’t give it much more thought.

In the past year and a half, I’ve been writing iOS apps using ReactiveCocoa (RAC), a functional reactive programming framework for Apple platforms, and it’s been a vehicle that’s slowly reintroducing me to functional programming . Being exposed to ReactiveCocoa as well as the wonderful contributors via talks at conferences and social media has made me want to explore functional programming a lot more. I saw immense power in the abstractions offered by RAC and loved using it in my own projects.

I ended up attending RACDC 2015 (ReactiveCocoa Developers Conference) this summer. At RACDC, I met Benjamin Encz and jumped on the opportunity to teach as an iOS summer instructor at Make School. Seeing so many students go from mostly having only basic programming knowledge to shipping their own apps in 8 weeks over the summer really inspired me to learn more.

At this point, I wanted to gain the seemingly magical powers of functional programming. I recalled many saying Haskell is the source of said power, so I embarked on this journey towards power and enlightenment. But most of all, I just really wanted to understand the burrito jokes.