Issue resolved. Thanks! On Tue, Feb 4, 2014 at 1:09 PM, Michał Marczyk <michal.marc...@gmail.com> wrote: > source-fn is a private Var in the clojure.repl namespace; you can > still use source to display its definition, but you'll have to use the > fully qualified name: > > user=> (source clojure.repl/source-fn) > (defn source-fn > "Returns a string of the source code for the given symbol, if it can > find it. This requires that the symbol resolve to a Var defined in > a namespace for which the .clj is in the classpath. Returns nil if > it can't find the source. For most REPL usage, 'source' is more > convenient. > > Example: (source-fn 'filter)" > [x] > (when-let [v (resolve x)] > (when-let [filepath (:file (meta v))] > (when-let [strm (.getResourceAsStream (RT/baseLoader) filepath)] > (with-open [rdr (LineNumberReader. (InputStreamReader. strm))] > (dotimes [_ (dec (:line (meta v)))] (.readLine rdr)) > (let [text (StringBuilder.) > pbr (proxy [PushbackReader] [rdr] > (read [] (let [i (proxy-super read)] > (.append text (char i)) > i)))] > (read (PushbackReader. pbr)) > (str text))))))) > > Cheers, > Michał > > > On 4 February 2014 21:34, t x <txrev...@gmail.com> wrote: >> Hi, >> >> user> (source source) >> (defmacro source >> "Prints the source code for the given symbol, if it can find it. >> This requires that the symbol resolve to a Var defined in a >> namespace for which the .clj is in the classpath. >> >> Example: (source filter)" >> [n] >> `(println (or (source-fn '~n) (str "Source not found")))) >> nil >> user> (source source-fn) >> Source not found >> nil >> >> >> Is there a way, from pure-clojure that I can implement my-def + >> my-source (without using def+source) which behaves as def+source does >> ... or does doing so require writing Java code? >> >> Thanks! >> >> -- >> 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 >> Note that posts from new members are moderated - please be patient with your >> first post. >> 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 >> --- >> You received this message because you are subscribed to the Google Groups >> "Clojure" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to clojure+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/groups/opt_out. > > -- > 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 > Note that posts from new members are moderated - please be patient with your > first post. > 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 > --- > You received this message because you are subscribed to the Google Groups > "Clojure" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to clojure+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/groups/opt_out.
-- 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 Note that posts from new members are moderated - please be patient with your first post. 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 --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.