Pemrograman Clojure/Instalasi

Distribusi Clojure hanya terdiri atas 1 berkas: clojure-1.4.0.zip. Proses instalasi sebenarnya hanya semudah meng-ekstrak berkas tersebut dan melakukan konfigurasi variabel-variabel lingkungan. Clojure adalah kompiler yang berjalan di atas mesin virtual dari Java, sehingga untuk menggunakan Clojure, kita harus melakukan instalasi JDK (Java Development Kit) terlebih dahulu. Variabel lingkungan yang digunakan oleh Clojure adalah JAVA_HOME yang menunjuk pada lokasi instalasi JDK. Instalasi JDK ada di luar ruang lingkup buku ini, pembaca yang ingin mengetahui lebih lanjut tentang instalasi JDK bisa melihat pada pranala untuk mengunduh JDK

Setelah JDK terinstall, unduh distribusi Clojure di http://www.clojure.org. Versi terakhir pada saat buku ini ditulis adalah versi 1.4.0. Berikut ini adalah hasil unduhan tersebut:

[bpdp@bpdp-arch clojure]$ ls -la
total 4468
drwxr-xr-x 2 bpdp users    4096 Jul 15 01:11 .
drwxr-xr-x 4 bpdp users    4096 Jul 15 01:11 ..
-rw-r--r-- 1 bpdp users 4553941 Jul 15 01:11 clojure-1.4.0.zip
[bpdp@bpdp-arch clojure]$

Untuk menginstall Clojure, cukup mengekstrak distribusi Clojure tersebut sebagai berikut:

[bpdp@bpdp-arch clojure]$ unzip clojure-1.4.0.zip 
Archive:  clojure-1.4.0.zip
   creating: clojure-1.4.0/
  inflating: clojure-1.4.0/pom.xml   
  inflating: clojure-1.4.0/build.xml  
  inflating: clojure-1.4.0/readme.txt  
  inflating: clojure-1.4.0/changes.md  
  inflating: clojure-1.4.0/clojure.iml  
  inflating: clojure-1.4.0/epl-v10.html  
   creating: clojure-1.4.0/src/
   creating: clojure-1.4.0/src/script/
   creating: clojure-1.4.0/src/jvm/
   creating: clojure-1.4.0/src/jvm/clojure/
   creating: clojure-1.4.0/src/jvm/clojure/asm/
   creating: clojure-1.4.0/src/jvm/clojure/asm/commons/
   creating: clojure-1.4.0/src/jvm/clojure/lang/
   creating: clojure-1.4.0/src/resources/
   creating: clojure-1.4.0/src/resources/clojure/
   creating: clojure-1.4.0/src/clj/
   creating: clojure-1.4.0/src/clj/clojure/
   creating: clojure-1.4.0/src/clj/clojure/test/
   creating: clojure-1.4.0/src/clj/clojure/java/
   creating: clojure-1.4.0/src/clj/clojure/pprint/
   creating: clojure-1.4.0/src/clj/clojure/core/
   creating: clojure-1.4.0/src/clj/clojure/reflect/
   creating: clojure-1.4.0/src/assembly/
  inflating: clojure-1.4.0/src/script/run_tests.clj  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Type.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/MethodAdapter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/AdviceAdapter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/SerialVersionUIDAdder.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/CodeSizeEvaluator.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/StaticInitMerger.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/Method.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/package.html  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/LocalVariablesSorter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/TableSwitchGenerator.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/AnalyzerAdapter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/EmptyVisitor.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/commons/GeneratorAdapter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/MethodWriter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/AnnotationWriter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Item.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/package.html  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Frame.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Label.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/MethodVisitor.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Opcodes.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Handler.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/ClassAdapter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Edge.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/Attribute.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/ByteVector.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/ClassReader.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/ClassVisitor.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/AnnotationVisitor.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/ClassWriter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/FieldVisitor.java  
  inflating: clojure-1.4.0/src/jvm/clojure/asm/FieldWriter.java  
  inflating: clojure-1.4.0/src/jvm/clojure/main.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ATransientSet.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IPersistentMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IRecord.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentHashSet.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IEditableCollection.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ISeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ITransientAssociative.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentArrayMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IBlockingDeref.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/TransactionalHashMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Repl.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IPersistentList.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ProxyHandler.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ILookupSite.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Delay.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Symbol.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/MethodImplCache.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Cons.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Ratio.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/EnumerationSeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ArrayChunk.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Ref.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/BigInt.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Atom.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentVector.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IPersistentSet.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ILookup.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Named.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Compiler.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/LineNumberingPushbackReader.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ArityException.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/AReference.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Box.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ChunkedCons.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Script.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IPending.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Util.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IReduce.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/LazilyPersistentVector.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IteratorSeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/APersistentMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Obj.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ITransientVector.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IMapEntry.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ITransientMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Associative.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/LockingTransaction.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ITransientCollection.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IPersistentCollection.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Counted.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ExceptionInfo.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IObj.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/StringSeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IChunkedSeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IPersistentStack.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ArraySeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IHashEq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Numbers.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/MultiFn.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentQueue.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Sequential.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentList.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IFn.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/APersistentVector.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/SeqEnumeration.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/AFunction.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/XMLHandler.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/AFn.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Agent.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Reflector.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ITransientSet.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Fn.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IMeta.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ARef.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/LispReader.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/LazySeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/MapEquivalence.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IndexedSeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/KeywordLookupSite.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IChunk.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Var.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/FnLoaderThunk.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IDeref.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Binding.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Namespace.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ILookupThunk.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Reversible.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/DynamicClassLoader.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Indexed.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Keyword.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/APersistentSet.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Seqable.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IRef.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ChunkBuffer.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Range.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/RT.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IReference.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/SeqIterator.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IProxy.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/RestFn.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentHashMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Intrinsics.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentTreeSet.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Sorted.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentTreeMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ATransientMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IType.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IPersistentVector.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/ASeq.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Compile.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/MapEntry.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/AMapEntry.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/PersistentStructMap.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/Settable.java  
  inflating: clojure-1.4.0/src/jvm/clojure/lang/IKeywordLookup.java  
  inflating: clojure-1.4.0/src/resources/clojure/version.properties  
  inflating: clojure-1.4.0/src/clj/clojure/data.clj  
  inflating: clojure-1.4.0/src/clj/clojure/string.clj  
  inflating: clojure-1.4.0/src/clj/clojure/gvec.clj  
  inflating: clojure-1.4.0/src/clj/clojure/instant.clj  
  inflating: clojure-1.4.0/src/clj/clojure/test.clj  
  inflating: clojure-1.4.0/src/clj/clojure/xml.clj  
  inflating: clojure-1.4.0/src/clj/clojure/inspector.clj  
  inflating: clojure-1.4.0/src/clj/clojure/repl.clj  
  inflating: clojure-1.4.0/src/clj/clojure/set.clj  
  inflating: clojure-1.4.0/src/clj/clojure/core_print.clj  
  inflating: clojure-1.4.0/src/clj/clojure/test/junit.clj  
  inflating: clojure-1.4.0/src/clj/clojure/test/tap.clj  
  inflating: clojure-1.4.0/src/clj/clojure/walk.clj  
  inflating: clojure-1.4.0/src/clj/clojure/genclass.clj  
  inflating: clojure-1.4.0/src/clj/clojure/zip.clj  
  inflating: clojure-1.4.0/src/clj/clojure/main.clj  
  inflating: clojure-1.4.0/src/clj/clojure/java/io.clj  
  inflating: clojure-1.4.0/src/clj/clojure/java/browse.clj  
  inflating: clojure-1.4.0/src/clj/clojure/java/javadoc.clj  
  inflating: clojure-1.4.0/src/clj/clojure/java/shell.clj  
  inflating: clojure-1.4.0/src/clj/clojure/java/browse_ui.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint/pretty_writer.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint/pprint_base.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint/column_writer.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint/dispatch.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint/print_table.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint/cl_format.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint/utilities.clj  
  inflating: clojure-1.4.0/src/clj/clojure/template.clj  
  inflating: clojure-1.4.0/src/clj/clojure/uuid.clj  
  inflating: clojure-1.4.0/src/clj/clojure/core/protocols.clj  
  inflating: clojure-1.4.0/src/clj/clojure/stacktrace.clj  
  inflating: clojure-1.4.0/src/clj/clojure/reflect/java.clj  
  inflating: clojure-1.4.0/src/clj/clojure/reflect.clj  
  inflating: clojure-1.4.0/src/clj/clojure/core_proxy.clj  
  inflating: clojure-1.4.0/src/clj/clojure/core.clj  
  inflating: clojure-1.4.0/src/clj/clojure/pprint.clj  
  inflating: clojure-1.4.0/src/clj/clojure/core_deftype.clj  
  inflating: clojure-1.4.0/src/clj/clojure/parallel.clj  
  inflating: clojure-1.4.0/src/assembly/slim.xml  
  inflating: clojure-1.4.0/src/assembly/distribution.xml  
   creating: clojure-1.4.0/doc/
   creating: clojure-1.4.0/doc/clojure/
   creating: clojure-1.4.0/doc/clojure/pprint/
  inflating: clojure-1.4.0/doc/clojure/pprint/PrettyPrinting.markdown  
  inflating: clojure-1.4.0/doc/clojure/pprint/CommonLispFormat.markdown  
   creating: clojure-1.4.0/test/
   creating: clojure-1.4.0/test/clojure/
   creating: clojure-1.4.0/test/clojure/test_clojure/
   creating: clojure-1.4.0/test/clojure/test_clojure/annotations/
   creating: clojure-1.4.0/test/clojure/test_clojure/load/
   creating: clojure-1.4.0/test/clojure/test_clojure/java/
   creating: clojure-1.4.0/test/clojure/test_clojure/pprint/
   creating: clojure-1.4.0/test/clojure/test_clojure/repl/
   creating: clojure-1.4.0/test/clojure/test_clojure/protocols/
   creating: clojure-1.4.0/test/clojure/test_clojure/genclass/
   creating: clojure-1.4.0/test/java/
   creating: clojure-1.4.0/test/java/compilation/
   creating: clojure-1.4.0/test/java/clojure/
   creating: clojure-1.4.0/test/java/clojure/test/
  inflating: clojure-1.4.0/test/clojure/test_helper.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/data.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/string.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/control.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/compilation.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/test.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/agents.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/repl.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/data_structures.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/annotations/java_5.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/annotations/java_6.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/atoms.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/serialization.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/transients.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/sequences.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/def.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/vectors.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load/cyclic5.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load/cyclic6.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load/cyclic1.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load/cyclic3.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load/cyclic0.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load/cyclic4.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load/cyclic2.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/java_interop.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/protocols.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/annotations.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/metadata.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/load.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/test_fixtures.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/genclass.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/clojure_zip.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/ns_libs.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/logic.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/main.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/java/io.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/java/javadoc.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/java/shell.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/pprint/test_cl_format.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/pprint/test_pretty.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/pprint/test_helper.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/multimethods.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/clojure_set.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/printer.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/numbers.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/other_functions.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/predicates.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/rt.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/clojure_walk.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/for.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/errors.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/keywords.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/repl/example.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/protocols/hash_collisions.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/protocols/examples.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/protocols/more_examples.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/vars.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/reflect.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/refs.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/genclass/examples.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/try_catch.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/evaluation.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/reader.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/clojure_xml.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/macros.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/pprint.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/parallel.clj  
  inflating: clojure-1.4.0/test/clojure/test_clojure/special.clj  
  inflating: clojure-1.4.0/test/java/compilation/TestDispatch.java  
  inflating: clojure-1.4.0/test/java/clojure/test/ReflectorTryCatchFixture.java  
  inflating: clojure-1.4.0/clojure-1.4.0-slim.jar  
  inflating: clojure-1.4.0/clojure-1.4.0.jar  
[bpdp@bpdp-arch clojure]$

Setelah instalasi tersebut, cobalah mengakses REPL (Read-Eval-Print-Loop) dari Clojure berikut ini:

[bpdp@bpdp-arch clojure]$ java -cp clojure-1.4.0.jar clojure.main
Clojure 1.4.0
user=> (print "Halo dari Clojure REPL")
Halo dari Clojure REPLnil
user=> 

Jika REPL dari Clojure bisa muncul dan menunjukkan hasil yang sama dengan di atas, berarti instalasi telah selesai dan kita mulai bisa menggunakan Clojure.