Posted on 20/03/2012

Diving into functional programming

I started programming when I was about twelve years old. Me and my friend got a book about writing programs in QBasic for Amiga. At first we were just copying code from the book. Later I started to make my own code. It was crappy - I wasn’t even able to use functions - but it got me hooked. Soon I moved to Pascal and got slightly more advanced. Not only did I learn about functions but even about objects :-) When I was in high school (age 16 or so) I began coding in C++. After high school the choice of studies was obvious for me - computer science. I went to Technical University of Łódź, biggest technical college in my city and one of the best in Poland. During studies I learned a lot about programming. Java became my main language for about 4 years, but I’ve had experience with other languages: Ada, Perl, Bash/AWK and Matlab, to name the most important. After graduating in 2008 I got a job at my own department as a researcher and lecturer. Matlab became my language of choice, since I was doing research in digital signal processing. These research were successful enough to earn me a PhD.

What’s the point in me telling you this? As you can see, there’s been a lot of programming in my life. If I were to name one thing I am really good at, these would be it. I was always convinced that I can code everything and I have all the fundamental knowledge of that field. I was wrong.

What programming paradigms are there? There’s the dominating object oriented programming paradigm and there’s structural programming, often treated as a contrast to OO programming. Everyone knows these two, at least I knew them. I also knew about the existence of Prolog and therefore the logical programming paradigm. But there is one more paradigm, which I wasn’t aware of: functional programming. I first heard the term ‘functional programming’ about four months ago and I started to be inquisitive. Is there really some different way of writing programs that I am not aware of? It turns out that yes, there is. During last months I realized how little I knew about programming and how many ingenious concepts were hidden away from me. I don’t like to be ignorant when it comes to programming so I started learning about functional programming (which I will abbreviate as FP). This blog will document my journey through this field. I’ll post various stuff on FP and other fields of computer science. I hope that sharing my knowledge will give others the motivation to explore this fascinating subject.

Back