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.