This week's book giveaway is in the Reactive Progamming forum.
We're giving away four copies of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams and have Adam Davis on-line!
See this thread for details.
Win a copy of Reactive Streams in Java: Concurrency with RxJava, Reactor, and Akka Streams this week in the Reactive Progamming forum!
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Liutauras Vilda
  • Junilu Lacar
  • Jeanne Boyarsky
  • Bear Bibeault
Sheriffs:
  • Knute Snortum
  • Tim Cooke
  • Devaka Cooray
Saloon Keepers:
  • Ron McLeod
  • Stephan van Hulst
  • Tim Moores
  • Tim Holloway
  • Carey Brown
Bartenders:
  • Piet Souris
  • Frits Walraven
  • Ganesh Patekar

Clojure as first functional programming language

 
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello guys, I recently discovered Clojure and began to study it, do you know any good books on Clojure, and online courses?
Also, from what i understand Clojure is, so called, "modern Lisp". But what are the key differences between CL and Clojure?
Is CL to old for using it in a modern enviroment or smth.? Or you can implement something, with Clojure, that you can't with CL?
 
Rancher
Posts: 352
21
Mac OS X Monad Clojure Linux
  • Likes 2
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator

Vladimir Chapelev wrote:Hello guys, I recently discovered Clojure and began to study it, do you know any good books on Clojure, and online courses?


Clojure for the Brave and True (previously just online, now also a print book) is a good introductory text. Clojure from the Ground Up (online) is useful too. You might also look at Living Clojure (I haven't read it but several friends recommend it highly). My favorite is Clojure Programming but I was already familiar with Lisps from years ago. Once you're up and running, pretty much everyone recommends The Joy of Clojure to really understand the "why" of Clojure.

I don't know of any online courses. I would recommend all of Rich Hickey's talks that you can find on video -- these provide a lot of insight into the motivations for Clojure and emphasize the focus on simplicity which is core to writing good Clojure.

Also, from what i understand Clojure is, so called, "modern Lisp". But what are the key differences between CL and Clojure?


I'm not very familiar with Common Lisp specifically but Clojure is "more functional" in that it has immutability by default, whereas CL has mutable data as a 1st class citizen. In addition, Clojure's syntax is richer -- using { } and [ ] as well as parentheses -- which makes it easier to read (in many people's opinions), as well as supporting a richer set of native data structures (hash maps, sets, vectors -- in addition to lists). Clojure also focuses on abstractions, such as "sequence", "counted", "associative", which makes it more powerful since functions can be applied uniformly and efficiently across different data types.

Is CL to old for using it in a modern enviroment or smth.? Or you can implement something, with Clojure, that you can't with CL?


If you want a fast, functional Lisp on the JVM, Clojure is going to be your best bet. If you want to learn a more traditional Lisp, supported by great tools, you could look at Racket.

Everything I do is on the JVM (and has been for nearly 20 years) so Clojure is the only way I can do Lisp programming and integrate it with everything else.
 
Sean Corfield
Rancher
Posts: 352
21
Mac OS X Monad Clojure Linux
  • Likes 1
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
I meant to add: since you asked about Clojure as a first functional programming language, I would say that it's better than Common Lisp in that respect because it is "more functional". In addition, we've had a lot of success through the ClojureBridge organization teaching Clojure to women who have never programmed before or are close to beginner programmers, so I think it's a good first language as well as a good first functional language.
 
Vladimir Chapelev
Greenhorn
Posts: 9
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Thank you for your detailed response!
 
Bartender
Posts: 2407
36
Scala Python Oracle Postgres Database Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
You might be interested in this free interactive online course from Helsinki University (it's in English). There are also lots of videos about Clojure online e.g. Clojure TV.

If you're coming from an object-oriented programming background, you might want to look at Brian Marick's book Functional Programming for the Object-Oriented Programmer.
 
It's hard to fight evil. The little things, like a nice sandwich, really helps. Right tiny ad?
Java file APIs (DOC, XLS, PDF, and many more)
https://products.aspose.com/total/java
  • Post Reply Bookmark Topic Watch Topic
  • New Topic
Boost this thread!