DEV Community

Discussion on: I want to learn functional programming: where to start?

Collapse
 
xtrasmal profile image
Xander

Hi there. Language apart, I'd like to point you to this resource
Category Theory for Programmers(github.com/hmemcpy/milewski-ctfp-pdf) or buy the book, because it is very good. It talks about composition. Here is a quote from the book:

"Composition is at the very root of category theory — it’s part of the definition of the category itself. And I will argue strongly that composition is the essence of programming. We’ve been composing things forever, long before some great engineer came up with the idea of a subroutine.
Some time ago the principles of structural programming revolutionized programming because they made blocks of code composable. Then came object oriented programming, which is all about composing objects.
Functional programming is not only about composing functions and algebraic data structures — it makes concurrency composable — something that’s virtually impossible with other programming paradigms."

The book uses examples from Haskell and other languages, as illustrations. So you will learn a little of that while you are at it.

When picking a functional language like Elixir, you will find that there is more stuff than just the language that are immensely awesome to tap in to. Like Elixir runs on BEAM, it is fault-tolerant(and other cool things), it has a framework called Phoenix for frontends(for example) and there is a thing called Nerves Project, which allows you to burn your code to an image for embedded systems.