Learning Clojure and Emacs

Why these two, together?

Clojure, a dialect of Lisp, is best suited to be a programmed in the legendary Emacs editor, which also happens to be programmed in Lisp. Coincidence? I think not!
So, here I’m basically going to log my journey as I start learning the Clojure programming language in the Emacs editor. So this blog is going to witness Souvik Haldar learning two things at once :D

Basics steps for beginning a CLojure project

Prerequisites

i) Install Leiningen.
ii) Setup emacs with cider and other required packages, follow this
(run M-x load-file RET <path-to-init.el> if emacs doesn’t look right)

Steps

i) Create the project using lein new app project_euler (Since we are going to solve euler’s problems for learning)
ii) Open emacs
iii) C-x C-f (then locate the core.clj file inside project_euler directory)
iv) Fire up the REPL by M-x cider-jack-in
v) Save the file by C-x C-s then compile it by C-c C-k.
vi) Switch to the REPL buffer by C-o. (or, you can see all running buffers by C-x b then RET the buffer in which REPL is running) vii) Now you can run the desired function by running it the REPL buffer by (<function-name> <arg>)

Example program written in Clojure

Question: Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …

By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.

(defn fibonacci [sum first second]
  (if (>= sum 4000000)
    sum
    (do
      (if (even? second)
        (recur (+ sum second) second (+ first second))
        (recur sum second (+ first second))))))

I’m currently solving Project Euler to learn to practice while learning. The solved problems can be found here. Happy Coding!