Does another dialect learn lisp so that it is easier to recognize clojure?

I read the structure and interpretation of computer programs . Lisp teaches me to think in my own way. As a Java developer, I want to learn clojure.

I know clojure is like lisp. So my question is, does learning Lisp help me easily learn clojure? Do similar concepts exist in both languages?

+6
source share
5 answers

Clojure have much in common with other Lisps. SICP is a great book, and although it focuses on the Scheme, many of what it teaches you will be directly related to Clojure.

If you describe one Lisp, then it will be much easier to pick another.

However, there are a few things about Clojure that make it “great,” worth noting:

  • It extends the classic Lisp syntax with vectors [] , hashmaps {} and sets #{} as well as traditional lists () .
  • It is rather a functional programming language in style than most other Lisps - almost everything is unchanged, default sequences by default, etc. In a way, Clojure has a strong influence from Haskell.
  • Clojure widely distributes the Java platform - it runs on the JVM, you can easily use the Java libraries directly. As a result, although you do not need to know strictly that Java is effective in Clojure, it helps to understand the Java ecosystem and tools.
  • The Clojure STM / concurrency support system is very innovative and different. Worth watching this video: http://www.infoq.com/presentations/Value-Identity-State-Rich-Hickey
+6
source

Take it with salt; I am a regular Lispper with some Scheme experience who is just starting to work on Clojure, so I am by no means an expert. You may want to learn about other Google.

It seems that the differences between Clojure and CL / Scheme are mostly presented in great detail. The overarching principles are more or less the same, and it does not seem that learning Clojure will significantly change your attitude to programming if you already know one of the other Lisps. There is a much greater emphasis on immutability and functional programming than you even find in Scheme, and several functions are named differently, and you need to balance parses / brackets / curls, not just parsers, but it is pretty much at the language level.

Having learned CL / Scheme, it seems that I have much less Clojure time than I could have done otherwise.

As a final thought, working through SICP and the accompanying lectures is worth your time, even if you plan to no longer look at the Scheme. He teaches many of the generally accepted CompSci principles and a specific way of thinking that will help you as a developer in any language that you ultimately use.

+5
source

Each language has its own set of nuances. You are currently learning small quirks (assuming Common Lisp / CL), but choosing a different language, not to mention the second dialect of Lisp, and you will recognize these features / differences / nuances.

If you don’t have enough time to learn, I would recognize Clojure if you are interested in programming in it, Lisp if you are interested in programming in this.

Learning Lisp is not so bad, because you will get used to how Lisp dialects differ from Algol-C languages. In this regard, the same argument can be made about the training scheme.

While Clojure, I am programmed in similar languages, but even Bliss-32 and PL / I IMHO are more like C and Java, then they are dialects of Lisp. Studying Clojure, which is required of me, and still requiring, is an even greater mental readjustment than the transition from C to C ++ (in the 90s).

I like regrouping, but it is gradual, with a learning curve.

+3
source

I followed the same path, since my friend was an old Lispers, and it became interesting for me to learn about him. He started hacking back in the early 70s and worked for some Lisp companies. Whenever we talked about programming languages, he referred to the concepts found in Lisp, and I felt like I never got what he said.

Learning Lisp was a great start for Clojure for me, and I ended up with Clojure since I was looking for Lisp that could run on ARM processors. In my opinion, Lisp is less complicated because it is not integrated with the Java virtual machine and, without knowing Java, it is much more difficult to understand Clojure than Lisp. I can only say that a good understanding of Lisp definitely helped me in learning Clojure.

+2
source

This will probably help, but each dialect has its own dynamics, so you need to study this dynamics / concepts. If you want to start with Clojure, I would suggest Clojurecademy , which is an interactive platform that teaches Clojure a programming language that I created for beginners.

0
source

Source: https://habr.com/ru/post/923281/


All Articles