λ-calculus

When I was just starting to write code and was doing it terribly (I am still better at it now than I was back then), I wanted to study something hardcore, and in my eyes that hardcore thing was Haskell.

Time passed, and I realized that Haskell is not the highest point of knowledge, but simply a good tool that implements its own concept. That concept is beautiful, and programming in Haskell is akin to art, where the programmer savors every piece of code.

A bit of history, by the way. Haskell appeared in 1990: it was put together by a whole committee of academics who were tired of every lazy functional language having its own dialect and decided to agree on a single common standard. They named the language after the American logician Haskell Curry, whose work on combinatory logic is exactly what underlies all of this. The result was a lazy, pure and strongly typed language that later settled into the Haskell 98 and Haskell 2010 standards.

Then neural networks appeared, and from a career standpoint learning Haskell stopped making any sense at all, since one line of beautiful code is unlikely to replace a thousand lines of working code in an employer's eyes, and there are basically no Haskell jobs anyway. But then again, only suckers write code for money, while real lads do it for pleasure. I am paraphrasing a classic line here.

What is Haskell's trick? Of course, its functional approach. And what is it needed for? Well, basically for nothing, except aesthetic pleasure. So it turns out that this is not a language for achieving success, but a language for spending half a day writing one function and enjoying it.

Of course, you can clutter code even in a “pure” language. Haskell certainly slaps your hands harder than other languages, but I managed that task too. In other words, nothing is impossible, and you can write imperatively in Haskell. You can, but why? That is not what it is for.

Here you have every right to ask: what does Haskell have to do with any of this, since the conversation was supposed to be about λ-calculus? Well, the thing is that λ-calculus is the very foundation Haskell stands on, and without it you simply cannot understand the language on a truly deep level. And since there are no pleasant moments without suffering, I immersed myself in λ-calculus. The lectures by Denis Nikolaevich Moskvin had a decisive influence on my understanding of it and Haskell; you can find them anywhere, and I recommend watching them.

This work is distributed under the Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license: you are free to share, adapt and use the material for any purpose, including commercial, provided that you give appropriate credit and distribute derivative works under the same license.