From eac68144fbfcb7a2b14686608099a29f1674f85a Mon Sep 17 00:00:00 2001 From: "George T. Walters II" Date: Sun, 8 Jan 2012 18:20:25 -0500 Subject: [PATCH] Adding Basic Clojure Project (May not run...) --- clojure/.gitignore | 7 +++++++ clojure/README.md | 39 ++++++++++++++++++++++++++++++++++++ clojure/project.clj | 5 +++++ clojure/src/simple.clj | 12 +++++++++++ clojure/test/simple_test.clj | 12 +++++++++++ 5 files changed, 75 insertions(+) create mode 100644 clojure/.gitignore create mode 100644 clojure/README.md create mode 100644 clojure/project.clj create mode 100644 clojure/src/simple.clj create mode 100644 clojure/test/simple_test.clj diff --git a/clojure/.gitignore b/clojure/.gitignore new file mode 100644 index 0000000..a1e9a2c --- /dev/null +++ b/clojure/.gitignore @@ -0,0 +1,7 @@ +classes/**/* +classes/* +lib/**/* +lib/* +.lein* +*~ +**/*~ diff --git a/clojure/README.md b/clojure/README.md new file mode 100644 index 0000000..8c9a1c4 --- /dev/null +++ b/clojure/README.md @@ -0,0 +1,39 @@ +Dead Simple Clojure Sample +========================== + +The newest swank-clojure jar greately simplifies running a Clojure REPL in emacs, provided that you have +a Clojure project set up. + +This is the simplest clojure project I could think of to try out the newest swank-clojure features. + +Requires: + +- Leiningen + +- A recent clojure-mode.el, with proper .emacs require statements. + + +__These notes are very incomplete. I will fill in with links and detailed directions as I go.__ + +You have to run `lein deps` in the project directory to install all needed dependancies. + +Once in Emacs `M-x clojure-jack-in` will get you a clojure REPL with classpath set to include all your project libs. + +You do _not_ need slime installed in your emacs for this to work. + +You can run the test suite(!!) by running `lein test` from the command line. + +From the clojure REPL in emacs you can run tests this way: + + user> (use 'clojure.test) + nil + user> (use 'simple-test) + nil + user> (run-tests 'simple-test) + + Testing simple-test + + Ran 2 tests containing 5 assertions. + 0 failures, 0 errors. + {:type :summary, :pass 5, :test 2, :error 0, :fail 0} + user> diff --git a/clojure/project.clj b/clojure/project.clj new file mode 100644 index 0000000..4cf5061 --- /dev/null +++ b/clojure/project.clj @@ -0,0 +1,5 @@ +(defproject test-project "0.1.0-SNAPSHOT" + :description "FIXME: write this!" + :dependencies [[org.clojure/clojure "1.3.0"]] + ) + diff --git a/clojure/src/simple.clj b/clojure/src/simple.clj new file mode 100644 index 0000000..8644f4e --- /dev/null +++ b/clojure/src/simple.clj @@ -0,0 +1,12 @@ +(ns simple ) +(defn hello + ([] "hello world!") + ([name] (str "hello " name "!"))) + +(defn addem + "Add stuff" + ([] 0) + ([n] n) + ([n m] (+ n m)) + ([n m & more] (reduce + (flatten (list n m more)))) +) diff --git a/clojure/test/simple_test.clj b/clojure/test/simple_test.clj new file mode 100644 index 0000000..04d28d4 --- /dev/null +++ b/clojure/test/simple_test.clj @@ -0,0 +1,12 @@ +(ns simple-test + (:use clojure.test) + (:use simple)) + +(deftest simple-test + (is (= (hello) "hello world!")) + (is (= (hello "test") "hello test!"))) + +(deftest addem-test + (is (= (addem) 0)) + (is (= (addem 5) 5)) + (is (= (addem 3 4) 7)))