2012-01-05 16 views
7

To jest mój problem: muszę uruchamiać niektóre kodu za każdym razem, kiedy otworzyć nowy repl, szukając w Google odkryłem, że mogę użyć pliku init.clj lub user.clj (z Leiningen)user.clj i init.clj nie działają?

Jest to kod muszę uruchomić:

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

są to wyniki z obu plików:

[~/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 

czy coś muszę zrobić, czy mam jakiś błąd?

Dziękuję wszystkim!

Odpowiedz

4

(alter-var-root #'*print-length* (constantly 103)) w dla mnie.

Z tego co mi wiadomo, set! nie działa poza zakresem dynamicznym binding.

+0

Tankuj, ta praca! : D – patz

+0

wiesz, jak ustawić funkcję "używaj", aby zawsze używać ns ?, mam linię (użyj '[clojure.contrib.string: exclude [Powtórz partycję dropu butlast get back]]), ale nie działa – patz

+0

@patz spróbuj zrobić nowe pytanie :) – wrongusername