Skip to content

Latest commit

 

History

History
34 lines (27 loc) · 1.23 KB

README.md

File metadata and controls

34 lines (27 loc) · 1.23 KB

vimgolf

Project 2 for Hackers: Vim Golf, written in Clojure

To do:

  • Vim as a Service
  • vimgolf frontend
  • vimgolf backend

Parts:

VaaS

Vim as a Service - meant to provide a webservice where documents can be sent and edited with a given set of vim commands.

vimgolf

A game in which users attempt to change one document into another in as few keystrokes as possible. Built upon VaaS.

Setup:

In this root directory, run make. You will need docker installed, as well as leiningen and a compatible JDK. Then, cd into VaaS and run lein run and cd into backend and run lein run. You should change the URLs in the backend and frontend source files.

Clojure Features:

The program is written utilizing functional programming. Pure functions can be run simultaneously with no risk as they should never be modifying the same memory. So, our servers are trivially parallelized. We also dabbled with Macros. Many LISPs allow LISP code to modify itself, as a key feature of LISP is "code is data." So, to make things a tad bit easier for us, we wrote a macro to turn a vector of containers into a vector of transient forms of said container. We needed this to be able to store our high scores for each hole.