I may be missing something fundamental about "binding", because I can't 
understand how the imports fail inside the binding block:

This works:

user=> (import '(java.io StringWriter))                      
nil
user=> (def bout (StringWriter.))                            
#'user/bout
user=> (binding [*out* bout] (import '(java.io File)))       
nil
user=> (binding [*out* bout] (println (File. "/home/albert")))
nil
user=> bout
/home/albert


But this doesn't (restarted the Repl to remove imports):


user=> (import '(java.io StringWriter))                      
nil
user=> (def bout (StringWriter.))                            
#'user/bout
user=> (binding [*out* bout] (import '(java.io File)) (println (File. 
"/home/albert")))
java.lang.IllegalArgumentException: Unable to resolve classname: File 
(NO_SOURCE_FILE:3)
user=>



But this works (via load-file; also restarted the Repl to remove imports):

file /home/albert/test.clj contains:
/-----8<----/
(import '(java.io File))
(println (File. "/home/albert"))
/----->8----/

user=> (import '(java.io StringWriter))                        
nil
user=> (def bout (StringWriter.))                              
#'user/bout
user=> (binding [*out* bout] (load-file "/home/albert/test.clj"))
java.lang.Exception: Unmatched delimiter: ) (test.clj:1)
user=> (binding [*out* bout] (load-file "/home/albert/test.clj"))
nil
user=> bout
/home/albert


Any explanations very appreciated.

Albert

-- 
Albert Cardona
http://albert.rierol.net


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to clojure@googlegroups.com
To unsubscribe from this group, send email to 
clojure+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to