Другое преимущество является потрясающими доступными инструментами статического анализа, например, FindBugs. Они выполняют большое проверение Вашего кода выше и вне выполненных компилятором и могут помочь определить ошибки и/или кодировать запахи, прежде чем тестирование начнется.
Сегодня у меня есть ответ, это то, что мне нужно
(import ('java.lang.management ManagementFactory)
(use 'clojure.contrib.shell)
(defn process-pid [] (let [m-name (.getName (ManagementFactory/getRuntimeMXBean))] (first (.split m-name "@"))))
(defn exit (sh "kill" (process-pid))
Похоже, у вас другая проблема в вашем коде.
Способ выхода из repl : : (System/exit 0)
Альтернативный синтаксис (. System exit 0)
также работает.
Вы можете проверить это в чистом репле, запущенном с: java -cp clojure.jar clojure.main -r
Исключение, которое вы получите, может показывать ошибку в некотором индексированном поиске, прежде чем ваш код доберется до предполагаемой точки выхода, по-видимому другая тема.
Я просто хотел выйти из своего REPL и приземлился здесь.
Это, кажется, вопрос, который приходит в голову каждому, когда он начинает делать первые шаги в Clojure REPL. И, конечно же, я не прочитал сообщение о запуске. Ответ на мой Clojure 1.7.0 - это (выход) или (выход) или Control-d, как указано в других ответах.
nREPL server started on port 49276 on host 127.0.0.1 - nrepl://127.0.0.1:49276
REPL-y 0.3.7, nREPL 0.2.10
Clojure 1.7.0
Java HotSpot(TM) 64-Bit Server VM 1.8.0_72-b15
Docs: (doc function-name-here)
(find-doc "part-of-name-here")
Source: (source function-name-here)
Javadoc: (javadoc java-object-or-class-here)
Exit: Control+D or (exit) or (quit)
Results: Stored in vars *1, *2, *3, an exception in *e
user=> (exit)
Bye for now!