張瑋修 (Walter Chang) is a long time Java/Scala developer. He specializes in architectures of the web, both in the browser and the cloud. In his spare time, he likes to explore new things and find out what makes them tick.
We know writing programs in a functional style has many benefits, and we try to learn all the ways to do functional programming. But do we know why functional programming has to be this way? Why do we need monads when they are so hard to understand?
In this talk, we are going to derive some basic building blocks of functional programming from first principles. The set of propositions we constraint ourselves with is fundamental to the power of functional programming and we will show you why constraints are actually liberating when they come to programming.
After this talk, you should have a better understanding of why functional programming is the way it is and hopefully will want to pursue it further in the future.