Found in 4 comments on Hacker News
antipurist · 2022-08-19 · Original thread
> What good introductions to functional can you people point me to?

When people hear "functional programming" many of them will immediately point you to Haskell (and totally forget to mention The Haskell Pyramid [1]). I'd advise you to stay away from it until you _want_ to go deeper down the rabbit hole.

Play with Elm and Erlang ("Programming Erlang" [2] and "Erlang Programming" [3] books are great) to un-learn imperative patterns, tinker with OCaml to learn a new way to modularize code.

[1] https://patrickmn.com/software/the-haskell-pyramid/

[2] https://www.amazon.com/dp/193778553X

[3] https://www.amazon.com/dp/0596518188

plainOldText · 2020-01-27 · Original thread
If you really want to learn Elixir, you should learn enough Erlang prior, to get a better understanding of how Erlang/OTP all fits together. Thus, I would recommend the following structure:

1. Read Joe Armstrong's Book: Programming Erlang to learn the basics and the philosophy behind Erlang from one of its creators. [1]

2. Read Erlang and OTP in Action to learn more about the OTP (Open Telecom Platform), applications and gen_servers (which btw, you will find them all over).

3. Learn Elixir, perhaps from one of the books Elixir in Action [3] or Programming Elixir. [4]

4. Finally, start implementing your cool personal project.

Ah, one more thing: Elixir School is also a wonderful resource with tons of information and examples [5] and of course the official Elixir website with its excellent docs. [6]

–––

[1] https://www.amazon.com/Programming-Erlang-Concurrent-Pragmat...

[2] https://www.amazon.com/Erlang-OTP-Action-Martin-Logan/dp/193...

[3] https://www.amazon.com/Elixir-Action-Sa%C5%A1a-Juri-cacute/d...

[4] https://www.amazon.com/Programming-Elixir-1-6-Functional-Con...

[5] https://elixirschool.com/

[6] https://elixir-lang.org/

I was looking for the book, but your link didn't work for me, this one did:

http://www.amazon.com/Programming-Erlang-Concurrent-Pragmati...

lostcolony · 2014-01-14 · Original thread
I don't know how good the tutorials for Elixir are on teaching you the basics of concurrent programming on the Erlang VM. It's very different than the concurrency models you'd encounter in almost every other language (Scala, and the Akka framework not withstanding, since they basically borrowed everything from Erlang and implemented it on the JVM), so it's not merely a matter of learning syntax and a couple of new constructs; your entire mechanism of problem solving changes (I'd almost argue that Erlang is unique in being a 'concurrent language' rather than, say, an OO one, or procedural, or functional. It's functional, yes, but its concurrency mechanism is messages, which have no guarantee of delivery, so are by definition side effects).

As such, I'd recommend starting with Erlang rather than Elixir simply because you'll find tutorials on how to start thinking about and breaking down problems to take advantage of the environment; trying to write an Erlang app using a paradigm learned from another language is going to be frustrating and not performant.

Joe released a 2nd edition of Programming Erlang last year, which is a -really- good introduction to the basic ideas of the language, as the focus of it (as compared with the first edition) is very much beginners, and taking advantage of the platform. http://www.amazon.com/Programming-Erlang-Concurrent-Pragmati...

Fresh book recommendations delivered straight to your inbox every Thursday.