If you are new to clojure you should consider LightTable as it is very easy to setup and get started.
Make sure that you have jdk 7 or greater installed. This
can be either oracle jdk or openjdk
depending on your preference and OS
.
To verify it run:
➜ java -version
java version "1.8.0_102"
Java(TM) SE Runtime Environment (build 1.8.0_102-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.102-b14, mixed mode)
Download Leiningen and follow the installation instructions.
Download LightTable and extract it.
Leiningen
is a dependency managment and build automation tool
for clojure
projects.
In order to create a leiningen
project all you have to do is:
➜ lein new hello
This will generate a scaffold for a project named hello
using the
default template.
Fire up LightTable
from the extracted directory.
Go to File ➜ Open Folder
and open the hello
folder that was generated
by leiningen
.
From the navigation pane on the left browse and open the src ➜ hello ➜ core.clj
file.
What makes clojure
particularly special is that it enables you to develop
your code interactively.
Place the cursor anywhere inside the (defn foo ... )
function and hit ctrl + enter
.
You should see a progress indication in the status status and
a highlighted #'hello.core/foo
message near the foo
function
after a while (this process takes a bit more during the first time).
So, what did just happen?
A clojure
REPL
has been started under the scenes and we just compiled and loaded
the foo
function on it. This might don't seem like a big deal but it actually is.
To get a feeling why, try the following: delete the foo
function, and create a new one:
(defn add [x y]
(+ x y))
Evaluate it by hitting ctrl + enter
as before. Type below:
(add 5 3)
and evaluated the call. You should see a highlighted 8
next to (add 5 3)
.
Try changing the add
function by adding an extra parameter or make it do
division instead, re-evaluate add
and then evaluate the call again.
Probably you want to change LightTable
's default font and theme.
Hitting ctrl+space
will open a pane on the right. Type settings
and
select Settings: User behaviors
.
Find the following line:
[:editor :lt.objs.style/set-theme "default"]
Remove the default
text and hit tab
. You should see a drop-down list
with all the themes LightTable
supports out of the box. Make your selection,
save the file and you should see the changes right away.
Below there is the following line:
;; [:app :lt.objs.style/font-settings "Courier New" "11"]
Remove ;;
. Lines starting with a ;
are considered comments and they
are quite distinctive by being grayed-out. Set the font family and size of
your preference and save.
LightTable
also supports fonts with programming ligatures like Fira Code.
You can find configuration instructions here.
paredit
If you are going to play around with clojure
for a while, you should consider getting familiar
with the paredit
plugin as it can really make your life a lot easier.
The paredit
plugin is installed by default but you have to configure some key
bindings in order to use it.
Hit ctrl + space
, type user keymap
and open the Settings: User keymap
.
Add the following lines just before the final closing bracket ]
:
[:editor "ctrl-shift-k" :paredit.grow.right]
[:editor "ctrl-shift-j" :paredit.shrink.right]
To see it in action, go to the editor, and evaluate the following:
(range 10)
Now type (reduce +)
before the previous form:
(reduce +) (range 10)
Place the cursor inside the (reduce +)
form and hit ctrl-shift-k
, you should see
the (range 10)
wrapped as follows:
(reduce + (range 10))
If you hit ctrl-shift-j
you will see the form being unwrapped.
Check this SO post if you want to configure more paredit
commands.
If you prefer to read a book about clojure you should check Clojure for the Brave and True which is available online for free.
If you prefer solving problems then there are a number of options:
Although it might be a bit tough for beginners, you should check clojure
's
reference documentation.
Have fun!