Let’s compare how we print the class-path in Clojure and how we do it on Java.
In Clojure:
(println (seq (.getURLs (java.lang.ClassLoader/getSystemClassLoader))))
In Java:
import java.net.URL; import java.net.URLClassLoader; public class PrintClasspath { public static void main(String[] args) { //Get the System Classloader ClassLoader sysClassLoader = ClassLoader.getSystemClassLoader(); //Get the URLs URL[] urls = ((URLClassLoader)sysClassLoader).getURLs(); for(int i=0; i< urls.length; i++) { System.out.println(urls[i].getFile()); } } }
To be fair, the output is not the same, but the effect is.
Cool one liner. I’m just starting in on Clojure and played around until I could get the Clojure version to print in the same format as your Java version:
Love it!
.-= Matt´s last blog: The super easy way to use Emacs and Slime with Clojure =-.
This might not work in all cases.
You could also want:
Sorry:
Martin: syntactic variant on your example:
My code got messed with by WordPress and got quotes changed to backticks :( Don’t know how to format code in my comment, sorry.
I fixed it, thanks for the code.
this code worked fine with the older version of clojure. I tried it with the newer one but unfortunately, it didn’t work out. What could be the issue??
It works for me in Clojure 1.2.1, what error are you getting?