E
E
evg_962017-09-30 13:10:48
Erlang
evg_96, 2017-09-30 13:10:48

What books to read on functional programming?

There is a need to get acquainted with the functional paradigm to broaden one's horizons. There is no specific goal to learn some language, just to learn how to write code in a functional style, to understand the general principles, therefore, what language would you recommend for someone who does not fumble in the functional paradigm at all, which one is better to start with?
What books in Russian should I start my acquaintance with functional programming with?
I've only heard of Erlang and Haskell in passing.

Answer the question

In order to leave comments, you need to log in

7 answer(s)
S
Sergey Gornostaev, 2017-09-30
@sergey-gornostaev

The perception of language is an individual matter. What was easy for me may be difficult for you. And vice versa. But I can share my personal experience:
Haskell has a weighty, in my opinion, advantage - programs are compiled into binaries. The downside is that I've never heard of any significant use case for Haskell. For perception, it seemed to me very difficult, the literature on it can be used as a sleeping pill.
Scala seemed the easiest to learn. The multi-paradigm nature of the language provides an easier entry from the imperative programming style. There is a wonderful tutorial "Scala for the Impatient" by Kay Horstmann. In addition, there are vacancies for scala programmers even in the Russian Federation. The downside for me was just the multi-paradigm. There is no challenge, no real brain teaser to reshape thinking.
Erlang is interesting, purely functional, widely used. But some incompleteness of the language is felt and the telecommunications heritage sticks out from everywhere. There is a good textbook in Russian by Cesarini and Thompson "Programming in Erlang". Plus, there's now Elixir. I heard that it is good and that all the problems of Erlang were solved in it, but I did not feel it myself.
I eventually settled on Clojure. The code is complex, but it really teaches you to think in a new way. There are many books on her. Including there is in Russian - "Programming in Clojure" Emerica. Good documentation, large and friendly community. In the real world, it's more common than Haskell, but less often Scala or Erlang.

D
Daniil Kolesnichenko, 2017-10-01
@KolesnichenkoDS

I think it's worth starting the study of functionalism with Haskell. Functional code can be written in Scala and even JS, but Haskell is good for learning FP because it imposes a functional style, so you won't be tempted to solve a problem in the usual imperative style.
You can start with Denis Moskvin's lectures on lambda calculus:
Specifically for Haskell, I can recommend Anton Kholomyev's book .

Z
Zaporozhchenko Oleg, 2017-10-01
@c3gdlk

I asked myself a similar question a year ago, I read books on elixir, erlang, okaml and haskell. And only in the Haskell book was the primary goal to explain the functional approach, and only then the language. Very easy to read - https://www.ozon.ru/context/detail/id/8696277/

S
Sergey, 2017-09-30
@begemot_sun

Regarding Erlang.
Learn Erlang for good. Dmkpress.
Enough for an introduction.
As for Erlang and Haskell, it's about the same as php and siplus plus in the ordinary world. Choose what is closer to you.

S
Skellig, 2017-09-30
@Skellig

As options:

  1. Scheme, based on the classic book The Structure and Interpretation of Computer Programs
  2. JavaScript, based on the book JavaScript Ninja Secrets (only the 2nd edition is required, it was just recently published in Russian)

A
Alexander Skusnov, 2017-10-01
@AlexSku

There is Dmitry Soshnikov's course on Intuit. Although he votes for F#, I liked Haskell more.

M
Mikhail Potanin, 2017-10-05
@potan

For a full-fledged study, you need to start with Haskell (or *ML, but there is less information on them, and not everything is as simple as it might seem).
If you just get to know each other and have front-end experience, then you can start with ELM .

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question