tutorial online example clojure

online - Manera típica de ejecutar programas de clojure.



clojure vs scala (7)

Como actualización, una forma sencilla de lidiar con los programas de clojure es usar leiningen

Si desea ejecutar pequeños scripts clojure, use lein-exec

Soy nuevo en Clojure y estoy realmente confundido acerca de cómo debería ejecutar los programas de Clojure.

Mi primera pregunta es si cada programa de Clojure es un paquete de Leiningen. Si quiero escribir, ¿comienzo por crear un nuevo proyecto de Leiningen? ¿Existe un programa para ejecutar Clojure similar a Python (es decir, python pyfile.py )

Me doy cuenta de que esta podría ser una pregunta estúpida, pero he estado confundido acerca de esto por un tiempo y los pocos libros / tutoriales que he visto no parecen responder esta pregunta correctamente. Hasta ahora, he estado ejecutando el código de Clojure en REPL.


Cree un alias en su archivo .bashrc , o equivalente:

alias clojure="java -jar path/to/clojure-xxxjar"

Luego puedes ejecutar clojure my-file.clj en tu terminal.


Desde que encontraste a Leiningen directamente, estás en el camino correcto. No es una pregunta tonta porque responderla ayudará a otros a obtener mejores resultados de Google.

  • cada programa de clojure debe ser un proyecto leiningen separado, de modo que ejecute lein new project-name de lein new project-name para cada uno de ellos.

  • el resultado de crear un proyecto Clojure es el mismo que un proyecto Java, un archivo JAR que se ejecuta con java -jar myproject-standalone.jar por ejemplo

  • leiningen puede crear un script de shell de envoltorio para usted que produzca un archivo .sh que simplemente llame a java -jar

  • Cuando ejecuto los programas de clojure en producción en el trabajo, simplemente los sacamos de git y luego llamamos a lein run en el directorio (en realidad Jenkins hace esto).


Para responder parte de la pregunta: "¿Existe un programa para ejecutar Clojure similar a Python?" Realmente puedes ejecutar un script de clojure como este (llamado hello.clj ):

(println "Hello!")

Me gusta esto:

clojure hello.clj

EDITAR: Lo siguiente debería funcionar en todos los sistemas:

java -jar <path-to-clojure-jar>/clojure.jar hello.clj

En mi sistema, el archivo clojure.jar se encuentra en /usr/share/clojure/clojure.jar. El comando de Linux para disparar clojure simplemente ejecuta un comando como el de arriba debajo de las cubiertas.



Una cosa que debe agregarse a la excelente respuesta de Arthur Ulfeldt es que lein crea un project.clj para usted, y su función principal (la función desde la que se inicia la ejecución del programa) se puede definir allí. Por defecto, Leiningen crea la función principal en un archivo llamado core.clj Por ejemplo:

(defproject music "1.0.0-SNAPSHOT" :description "A workspace for my music experiments" :dependencies [ [org.clojure/clojure "1.3.0"] [org.clojure/math.combinatorics "0.0.1"] ] :main music.core)

ahora mi proyecto se puede ejecutar usando:

lein run

y se ejecutará la función principal en music.core.


mi guión de bash clojure:

#!/bin/sh export CLOJURE_EXT=$HOME/.clojure export CLOJURE_OPTS="-Xmx1g -server" LIBS=$(ls -1 $CLOJURE_EXT/* 2> /dev/null) export CLASSPATH=.:$CLOJURE_EXT:$CLASSPATH:"$(echo "$LIBS" | tr //n :)" JAVA=${CLOJURE_JAVA:-java} OPTS=${CLOJURE_OPTS:-} MAIN=${CLOJURE_MAIN:-clojure.main} breakchars="(){}[],^%$#@/"/";:''''|//" if [ $# -eq 0 ]; then exec rlwrap --remember -c -b $breakchars / -f $HOME/.clj_completions / --history-filename=$HOME/.clj_history --histsize=1000000 / $JAVA $OPTS $MAIN -i $HOME/.clojure.clj --repl else exec $JAVA $OPTS $MAIN "$@" fi

guárdelos en $ HOME / bin / clojure, chmod + x $ HOME / bin / clojure, copie clojure.jar y la biblioteca de terceros en $ HOME / .clojure, puede ejecutar clojure your_program.clj como python pyfile.py