2011-03-14 19 views
11

Estoy familiarizado con los paquetes de, p. Java y Lisp, pero lo que estoy viendo en el código de otras personas son algunos términos aparentes como llamar al punto de entrada '-main' y usar un backtick para el nombre del espacio de nombres en (in-ns `foo), ese tipo de cosas. No veo estas explicaciones en ningún lugar en documentos o tutoriales. ¿Hay algún recurso que explique tales convenciones en torno a los programas de estructuración?¿Qué significa el idiomatic (defn -main ...) en un programa de clojure?

Editar:

creo que debe haber recogido lo tilde de esta respuesta: Splitting a Clojure namespace over multiple files, que me encontré con al tratar de dar sentido a (defn -principal ...). Dado el autor, lo tomé como una buena práctica. Sin embargo, ahora que hurgo en las fuentes de Clojure que cita, veo que solo se usa la cita regular. Supongo que es un error tipográfico.

(reducido el alcance de la título de la pregunta en consecuencia)

+0

He visto un par de preguntas con el mismo título aquí, pero no son lo que estoy buscando – fizzer

+2

ask easy questions = P –

+0

el revés en el in-ns es un truco interesante (y aparentemente indocumentado) . Para aclarar su pregunta, ¿se refiere a la organización de las definiciones dentro de un único archivo fuente o la organización de todos los archivos en su estructura de paquete? –

Respuesta

6

El valor predeterminado para gen-clase es utilizar - como prefijo para nombres de los métodos de esa clase. Cuál es por qué -principal es el punto de entrada predeterminado para java -cp clojure.jar tuclase

Backticks califican su argumento con el espacio de nombre actual, por lo que (in-ns `foo) es el mismo que (en-ns 'actual- namespace/foo) y no creo que sea particularmente idiomático. La forma idiomática es poner cada espacio de nombres en su propio archivo con (ns ...) en la parte superior, y usarlos o requerirlos según sea necesario.

+0

ok, encontré gen-class, gracias +1. En cuanto al punto acerca de los espacios de nombres, creo que quizás vi otra estructura con un archivo fuente que define (ns ...) y muchos otros que usan (in-ns ...). – fizzer

+0

Ver el enlace en mi pregunta, por ejemplo, de este estilo – fizzer

+0

@fizzer: sí, estoy bastante seguro de que es un error tipográfico. Y aunque dividir espacios de nombres en archivos puede ser útil, todavía no lo llamaría idiomático. –

Cuestiones relacionadas