2012-01-05 30 views
7

Este es mi problema: Necesito ejecutar un código cada vez que abren una nueva repl, buscando en Google encontré que puedo usar el archivo init.clj o la user.clj (con Leiningen)user.clj y init.clj ¿no funcionan?

Este es el código que necesito para funcionar:

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

Estos son los resultados con los dos archivos:

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

¿hay algo que tengo que hacer o tengo algún error?

¡Gracias a todos!

Respuesta

4

(alter-var-root #'*print-length* (constantly 103)) en ~/user.clj funciona para mí.

Por lo que sé set! no funciona fuera del alcance dinámico de binding.

+0

Tank you, this work! : D – patz

+0

¿sabes cómo poner una función "usar" para siempre usar un ns ?, tengo la línea (usar '[clojure.contrib.string: exclude [repetir butlast drop partition obtener toma inversa]]) pero no funciona – patz

+0

@patz intente hacer una nueva pregunta :) – wrongusername

Cuestiones relacionadas