Respuestas:
De hecho, ¡hay una manera!
(comment
(defn hey []
("Hey there!"))
Check me out!
)
Simplemente envuelva sus comentarios en (comentario ..) :)
¡Que te diviertas!
Clojure admite una #_
macro de lector que omite por completo el siguiente formulario. Esto se menciona en la página sobre Clojure Reader . También existe la macro de comentarios que tiene un efecto similar, pero se implementa de manera diferente.
Los dos anteriores requieren que lo que está comentando sea una expresión S sintácticamente correcta.
Algunos dialectos Lisp tienen un comentario de varias líneas que puede contener texto arbitrario, pero no veo uno para Clojure.
*scratch*
búfer, simplemente escriba algo de basura después ;
;;
o ;;;
en varias líneas, coloque el cursor en la primera palabra después del punto y coma y presione Meta-Q
).
Las comillas dobles (literal de cadena) permiten agregar texto arbitrario (no solo las formas S adecuadas):
(comment "
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello, World");
System.out.println();
}
}
")
Hello
, la tercera forma es el símbolo World
y la cuarta forma es otra cadena. comment
simplemente ignora todas las formas. Entonces, en el ejemplo, tenemos suerte de que se Hello, World
analice como clojure legal. No funciona con texto arbitrario. Por ejemplo, (comment "print("/foo")")
morirá con el error Invalid token: /foo
.
Otros ejemplos son geniales, solo me gustaría agregar un truco más:
A veces, desea comentar algunas líneas de código, pero aún así el compilador lo compila y reporta cualquier error (por ejemplo, un conjunto de comandos en un espacio de nombres de nivel superior que planea ejecutar más tarde en el REPL).
En este caso, me gusta ajustar el código, lo (fn [] .....)
que significa que aún se compila, simplemente no se llama.
Vea este enlace: http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips
Puede crear comentarios de varias líneas con la sintaxis
(comment .....
....)
En Emacs puede usar el comando M-;
(el atajo para M-x comment-dwim
). Comentará o descomentará cualquier región marcada de texto / código, por lo que, siempre que toda su función o conjunto de funciones esté incluido en la región, puede comentar o descomentar esa región con bastante facilidad. El manual de referencia de Emacs para la función M-;
se puede encontrar aquí .
Hay varias formas que conozco:
El primero es usar la macro de comentarios : solo no evalúa todo el código dentro del cuerpo del comentario (pero aún verifica el equilibrio entre paréntesis / corchetes). Si conoces tu camino con paredit, no te llevará mucho tiempo si quieres comentar algunas llamadas sexp.
(comment
(println 1))
Sin embargo, seguirá comprobando la coincidencia entre paréntesis. Entonces, si tiene paréntesis desequilibrados, su código no se compilará (produciendojava.lang.RuntimeException: EOF while reading
).
Otra forma es usar #_
(también conocida como la macro de descarte): descartará el siguiente sexp, que es la forma en que personalmente prefiero (más rápido de escribir y normalmente lo hago en sexps cuando tengo que depurar):
#_(println 1)
También comprueba si hay delimitadores no coincidentes: por lo tanto, si tiene paréntesis desequilibrados, no se compilará también.
Por último, está el ;
carácter que comentará la línea (similar a la función de comentarios de otros idiomas) y la compilación lo ignorará por completo. Si desea comentar varias líneas, debe anteponer todas las líneas con; , que normalmente son una molestia, pero normalmente los editores de texto lo hacen por usted con un comando después de seleccionar varias líneas.
; (println 1)
; (println 1 also won't break
Para un bloque de comentarios largo, Macros #_ o (comentario ...) no funcionó como propietario, luego hice el bloque de comentarios con VSCODE (OS X).