Clojure
Clojure is a functional programming language, based on Lisp (just like Scheme), that runs on top of the Java Virtual Machine. So you get all the nice functional advantages of Lisp (with lambdas and all that), but at the same time you get the platform-independence and speed of Java. Sweet! Clojure supports concurrency (multi-threading) pretty nicely as well.
Useful Links
- The Official Website for Clojure is probably your best resource. It has all kinds of documentation and examples, plus you can download the interpreter (really a bytecode compiler) for just about any platform.
- Wikipedia page
- 99 bottles of beer program
Tools
We will use Clojure version 1.9.
Everything you need is already installed on CS department lab machines.
To install on your virtual machine, follow these steps:
-
Run
sudo apt install -y clojure
- That's it!
How I will run your code
The programs you submit should be in a single file
called proj.clj
, for either part of the project.
I will test your code by running the following commands
using the software available in the lab environment or using the instructions
above:
clojure proj.clj
Phase 1 Requirements
For this language, you need to implement modifications B, C, D, F, G, and H. See the Phase 1 page for details on what this means.
Phase 2
See the Phase 2 Page for the list of suggested
problems. Of the ones listed, I recommend the following as being most
well-suited for Clojure:
- Make
- Matrix Calculator
- Game Scheduler
- TODO list
- Game with hidden agenda
- Guess the language
- Find the missing digits
- Rock, Paper, Scissors
- Music Maker
- ??? (you choose!)