user.clj и init.clj не работают? - PullRequest
       26

user.clj и init.clj не работают?

7 голосов
/ 05 января 2012

Это моя проблема: мне нужно запускать какой-то код каждый раз, когда я открываю новый репл, при поиске в Google я обнаружил, что могу использовать файл init.clj или user.clj (с Leiningen)

Это код, который мне нужно запустить:

(set! *print-length* 103)  
(println "hello")
(println *print-length*)

Это результаты с обоими файлами:

[~/project]$ lein repl
hello    <- this is the println, so the file is excecuted  
103      <- this is the println of *print-length* apparently change  
REPL started; server listening on localhost port 20875  
user=> *print-length*  
nil      <- but the val of *print-length* don't change

Есть ли что-то, что мне нужно сделать, или у меня есть какая-то ошибка?

Спасибо всем!

Ответы [ 2 ]

4 голосов
/ 05 января 2012

(alter-var-root #'*print-length* (constantly 103)) в ~/user.clj у меня работает.

Насколько я знаю, set! не работает вне динамической области видимости binding.

4 голосов
/ 05 января 2012

Файл lein init.clj запускается в процессе leiningen, а не в процессе вашего проекта.См. https://github.com/technomancy/leiningen (поиск по init.clj)

...