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!