T
T
tupoi2015-09-17 00:52:37
Erlang
tupoi, 2015-09-17 00:52:37

What FP language to learn?

Good day, I decided to ask you for advice, for a month I’ve probably been reading all sorts of forums, habr, toaster, etc., but I just can’t make a choice. I really want to learn some kind of functional programming language, now I'm programming in swift and objective-c, but in the future I would like diversity, somehow it's already boring, well, I want FP and that's it :D the problem is that there is no clear answer , if you just ask "advise a language for a beginner", everyone will say C, but here it's the other way around, someone advises Haskell, someone a rock, someone Erlang everyone praises their swamp, I would like to hear the pros and cons of the currently main FP languages, for what one or another is used and where it is applied, whether there is a community (live), and so on. I would be very grateful if you are not too lazy and try to explain)

Answer the question

In order to leave comments, you need to log in

8 answer(s)
V
Vasily minodvesP, 2015-10-06
@tupoi

There are also:
- Nemerle (also dot.no, like the mentioned F#, but there is little information about Nemerle),
- Rust (gaining fame from Mozilla, there seems to be even a book in Russian),
- hy (lisp for python, while it is more experimental ),
- Elm (a Haskell-like language that compiles to JS),
- Common Lisp (classic Lisp, so to speak),
- Scheme (more of an educational Lisp dialect, although there is Racket (a Scheme dialect), which seems to be used by someone even for production) ,
- Prolog (the most famous logic programming language).
And so the pros and cons of the most popular:
- Erlang (PLUS: one of the easiest languages ​​to learn in FP, used in production in the telecommunications industry, and also recently on the web, mainly chats, etc.; MINUSES: not a general-purpose language, specific prolog syntax) .
- Clojure (PLUS: quite easy to learn, JVM platform, ClojureScript (clojure dialect for compiling to javascript), there is a port to the .NET platform, Lisp; MINUSES: JVM platform, other implementations are less developed, Lisp brackets for an amateur) .
- F# (PLUS: supported by Microsoft and tailored for .NET, MINUSES: limited by .NET).
- Scala (PROS: gaining popularity, may over time really push Java, both OOP and FP paradigms are available, powerful, MINUSES: difficult for beginners in FP).
- Haskell (PROS: very powerful, almost universal, many features of modern programming came from Haskell, MINUSES: quite difficult for beginners, like a rock).
PS I would choose from clozhura, erlang and haskell.
PPS if you are interested in general for yourself, you can limit yourself to Scheme and study SICP.

A
Alexander Ruchkin, 2015-09-17
@VoidEx

If in academic, then, as answered above, learn Haskell, and better [immediately or later] Agda2 with dependent types, you will learn a lot of new things.

P
protven, 2015-09-17
@protven

+1 to leventov . Only Clojure, not closure. This is if you just want to teach, there are few vacancies in terms of klozhure in Russia. And if with an eye on future work, then Scala or Erlang is better.

L
leventov, 2015-09-17
@leventov

They also forgot Lisp and dialects, such as Clojure. There is also OCaml,
Everything is plus or minus the same, so I advise you to learn what you like best.

F
FoxInSox, 2015-09-17
@FoxInSox

If you want to learn a language just like that ("for a change"), then I would not want to if I were you.

S
Shetani, 2015-09-19
@Shetani

Monday is the beginning of the Haskell course.

M
Mikhail Potanin, 2017-10-05
@potan

For starters, you can take ELM. Moreover, support for the react-native javascript library has been made for it, which allows you to make programs for Android and iOS.
For a full immersion, you need to master Haskell.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question