E
E
EngineerSpock2012-07-26 14:12:02
Programming
EngineerSpock, 2012-07-26 14:12:02

Which functional programming language to choose when learning data structures and algorithms?

And now the full wording of the question.
I have been programming in C# for about 3 years.
At one point, I wanted to study data structures and algorithms in more detail.
Studying, I program solutions to problems and implement the mastered algorithms on my own. Doing this in C# became terribly boring (I immediately realized this) and in connection with this I wanted to learn a new programming language.
In general, excluding C#, I am familiar with C++ and VB6.

I would like to get acquainted with some other (non-imperative) programming paradigm. In the context of studying data structures and algorithms, I thought it would be more logical to learn a language that supports functional programming. But there are many such languages.

Separately, I would like to touch on F# and highlight its main drawback for me: it is a language from the .NET platform, and I would like to learn a language that does not belong to this platform (the reason is simple: I don’t want to put all my eggs in one basket).

However, I don't mind hearing the arguments for F# if you'd like to insist on a recommendation to learn it.

Answer the question

In order to leave comments, you need to log in

9 answer(s)
E
EvilMan, 2012-07-26
@EngineerSpock

Actually, I recommend Scheme, complete with the book "Structure and Interpretation of Computer Programs" (Structure and Interpretation of Computer Programs aka SICP) by Harold Abelson and associates. If you read carefully and complete at least some of the tasks, then you can master functional programming very well, and it will take an order of magnitude less time to learn functional languages. If you want a more up-to-date language, then Haskell or Erlang.

N
No_Time, 2012-07-26
@No_Time

If you want a hardcore functional approach, then no doubt haskell, but learning it is not an easy task. Erlang is easier, and for me it’s more understandable, especially since it’s easier to write things that are not cut off from this world in it =)

B
bagyr, 2012-07-26
@bagyr

OCaml is the same F#, only without the CLR and a little crooked.
Clojure is not as Martian as other Lisps, but still interesting.
Ideally, Haskell.
If you are interested in digging into the F# code, then github.com/jaredpar/VsVim .

C
charon, 2012-07-26
@charon

I didn't understand your prejudice against F# - it's almost the same OCaml (OCaml programs are fully valid in F#) - and Ocaml is a very normal functional language, the forerunner of many modern ones and is not backward itself.
If you need full hardcore - then only Haskell. Nothing compares to him in terms of modernity and accuracy of following the paradigm.
If you make money, then Erlang is better. But in general, the idea of ​​making money on FYA is very difficult to implement. Lisp is also used, but I did not like its appearance. Too many brackets, my soul can't take it.

M
Mikhail Osher, 2012-07-26
@miraage

Erlang

A
astrobeglec, 2012-07-26
@astrobeglec

You can choose from C, Pearl (especially!), Python. You can try Prolog, a very peculiar programming language. It is best to try several languages, and then study in depth the one you like or the one that is more convenient for solving your problems.

E
EngineerSpock, 2012-07-26
@EngineerSpock

And from the point of view of relevance in terms of the percentage of use in real projects?

A
Antelle, 2012-07-26
@Antelle

No need to learn structures and algorithms using the FP language, this is a perversion.
Separately, if you want to learn exactly FP, I would probably recommend the classic Lisp for universities. In practice, it is applicable, for example, AutoLISP in AutoCAD.

E
EngineerSpock, 2012-07-26
@EngineerSpock

Judging by the popularity of languages , the only functional language in the top is Lisp.
I am, after all, not least interested in the opportunity to earn at least some money in the language being studied.

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question