Respostas:
Na verdade, existe uma maneira!
(comment
(defn hey []
("Hey there!"))
Check me out!
)
Basta envolver seus comentários em (comentário ..) :)
Diverta-se!
Clojure oferece suporte a uma #_
macro de leitura que ignora completamente a próxima forma. Isso é mencionado na página sobre o Leitor Clojure . Existe também a macro de comentários que tem um efeito semelhante, mas é implementada de forma diferente.
Ambos os itens acima requerem que o que você está comentando seja uma expressão S sintaticamente correta.
Alguns dialetos Lisp têm um comentário de várias linhas que pode conter texto arbitrário, mas não vejo um para Clojure.
*scratch*
buffer, basta digitar algum lixo depois ;
;;
ou ;;;
em várias linhas, colocar o cursor na primeira palavra após o ponto-e-vírgula e pressionar Meta-Q
).
Aspas duplas (literal de string) permitem adicionar texto arbitrário (não apenas formas S adequadas):
(comment "
public class HelloWorld {
public static void main(String[] args) {
System.out.print("Hello, World");
System.out.println();
}
}
")
Hello
, a 3ª forma é o símbolo World
e a 4ª forma é outra string. comment
apenas ignora todos os formulários. Portanto, no exemplo, temos sorte de Hello, World
analisar como um clojure legal. Não funciona com texto arbitrário. Por exemplo, (comment "print("/foo")")
vai morrer com o erro Invalid token: /foo
.
Outros exemplos são ótimos, gostaria apenas de adicionar mais um truque:
Às vezes, você deseja comentar algumas linhas de código, mas ainda faz com que o compilador o compile e relate quaisquer erros (por exemplo, um conjunto de comandos em um namespace de nível superior que você planeja executar posteriormente no REPL).
Neste caso, gosto de embrulhar o código, o (fn [] .....)
que significa que ele ainda é compilado, mas não chamado.
Veja este link: http://en.wikibooks.org/wiki/Clojure_Programming/Tutorials_and_Tips
Você pode criar comentários de várias linhas com a sintaxe
(comment .....
....)
No Emacs você pode usar o comando M-;
(o atalho para M-x comment-dwim
). Ele comentará ou removerá o comentário de qualquer região marcada de texto / código, portanto, desde que toda a sua função ou conjunto de funções esteja incluído na região, você pode comentar ou remover o comentário dessa região facilmente. O manual de referência do Emacs para a função M-;
pode ser encontrado aqui .
Eu conheço várias maneiras:
O primeiro é usar a macro de comentário : ela apenas não avalia todo o código dentro do corpo do comentário (mas ainda verifica se há parênteses / colchetes equilibrados). Se você conhece o paredito, não vai demorar muito se quiser comentar algumas ligações de sexo oral.
(comment
(println 1))
No entanto, ele ainda verificará a correspondência entre parênteses. Então, se você tiver parênteses não balanceados, seu código não compilará (produzindo java.lang.RuntimeException: EOF while reading
).
Outra forma é usar #_
(também conhecido como macro de descarte): ele descartará o próximo sexp, que é o jeito que eu pessoalmente prefiro (mais rápido para digitar e normalmente faço isso no sexps quando tenho que depurar):
#_(println 1)
Ele também verifica se há delimitadores incompatíveis: portanto, se você tiver parênteses não balanceados, ele não irá compilar também.
Por último, há o ;
caractere que comentará a linha (semelhante ao recurso de comentário de outras linguagens) e a compilação o ignorará completamente. Se quiser comentar várias linhas, você precisa preceder todas as linhas com; , que normalmente são um incômodo, mas normalmente os editores de texto farão isso por você com um comando após selecionar várias linhas.
; (println 1)
; (println 1 also won't break
Para um bloco de comentário longo, as macros #_ ou (comentário ...) não funcionaram como proprietárias, então fiz o bloco de comentário com VSCODE (OS X).