Tutorial: Clojure
Leiningen
Leiningen es una herramienta utilizada para manejar proyectos en Clojure. Sería como el equivalente de Maven para Clojure.
Tanto Clojure como Leiningen puede ser utilizados desde una IDE como IntelliJ IDEA o desde la consola.
IntelliJ IDEA
En IntelliJ IDEA es posible utilizar un plugin que instala automáticamente Clojure y Leiningen.
-
Abrir la pantalla de configuración de Plugins (desde la pantalla de inicio, o en Menu → Settings… → Plugins).
- Click en Marketplace
- Buscar el plugin Cursive
- Click en Install
- Cuando termine la instalación, reiniciar IntelliJ.

-
Al crear un nuevo proyecto, seleccionar Clojure y Leiningen, y click en Next. Luego completar los datos del proyecto (nombre, ubicación, etc.).

-
Cursive se puede probar por 30 días, y luego de ese período requiere la adquisición de una licencia. Se puede obtener una licencia gratuita para uso no comercial:
- Ir a https://cursive-ide.com/buy.html
- Elegir Non-Commercial licence
- Ingresar nombre y email.
- Se recibirá la licencia en la casilla de mail.
- En IntelliJ, ir a Menu → Help → Register Cursive…
- Copiar y pegar la licencia (el texto entre
BEGIN LICENCEyEND LICENCEinclusive).
Consola
-
Instalar Java, Clojure y Leiningen en el sistema. Las instrucciones de instalación dependen del sistema operativo (por ejemplo en Ubuntu se puede instalar con
apt install clojure leiningen). Una vez instalados deberían estar disponibles los comandoscljylein. -
Crear un nuevo proyecto con
lein new app <nombre>. Este comando crea una carpeta con el nombre indicado y algunos archivos iniciales.my-app/ ├── CHANGELOG.md ├── doc │ └── intro.md ├── LICENSE ├── project.clj ├── README.md ├── resources ├── src │ └── my_app │ └── core.clj └── test └── my_app └── core_test.cljLos próximos comandos asumen que estamos parados en la carpeta raíz del proyecto.
-
El punto de entrada del programa es la función
-maindefinida en el archivocore.clj. Para ejecutarlo:lein run. -
Para iniciar un REPL desde donde podemos invocar cualquier función definida en nuestro código:
lein repl.Por defecto el REPL solo importa los símbolos del archivo
core.clj. Para importar otros archivos:(use '[<namespace>.<nombre-modulo>] :reload). Por ejemplo, si queremos cargar el archivosrc/my_app/math.clj:(use '[my_app.math] :reload)(dentro de ese archivo la primera línea debe ser(ns my_app.math)). -
Para crear un archivo
jarque se puede distribuir y ejecutar en cualquier otra computadora con la máquina virtual de Java:lein uberjar. Luego ejecutarlo conjava -jar <nombre>.jar.