Not sure what you want to achieve by studying the source code. I think the answer that I can give to what works best for you will depend on what you want to study the source code for.
I'm also not sure what you mean by 'what is the best place to start reading..' The link that I gave before is a direct link to the source code of clojure. That is the source. http://code.google.com/p/clojure/source/browse/trunk/src/clj/clojure/core.clj On Jan 13, 9:04 am, HB <hubaghd...@gmail.com> wrote: > Do you suggest that I read "Programming Clojure" first and then trying > to study the source code? > What is the best place (file, package or what ever) to start reading > the source code? > > On Jan 13, 10:01 am, bOR_ <boris.sch...@gmail.com> wrote: > > > > > Here you can peek at the source code of clojure. > > >http://code.google.com/p/clojure/source/browse/trunk/src/clj/clojure/... > > > It is about 3700 lines, and although you have to get used to a few new > > functions and names that are normally not exposed when you use > > clojure, it looks fairly simple. > > > Here is the function that defines defn itself. Most functions in the > > source are a magnitude easier than this one for us newbies =). > > > (def > > > #^{:doc "Same as (def name (fn [params* ] exprs*)) or (def > > name (fn ([params* ] exprs*)+)) with any doc-string or attrs added > > to the var metadata" > > :arglists '([name doc-string? attr-map? [params*] body] > > [name doc-string? attr-map? ([params*] body)+ attr- > > map?])} > > defn (fn defn [name & fdecl] > > (let [m (if (string? (first fdecl)) > > {:doc (first fdecl)} > > {}) > > fdecl (if (string? (first fdecl)) > > (rest fdecl) > > fdecl) > > m (if (map? (first fdecl)) > > (conj m (first fdecl)) > > m) > > fdecl (if (map? (first fdecl)) > > (rest fdecl) > > fdecl) > > fdecl (if (vector? (first fdecl)) > > (list fdecl) > > fdecl) > > m (if (map? (last fdecl)) > > (conj m (last fdecl)) > > m) > > fdecl (if (map? (last fdecl)) > > (butlast fdecl) > > fdecl) > > m (conj {:arglists (list 'quote (sigs fdecl))} m)] > > (list 'def (with-meta name (conj (if (meta name) (meta name) > > {}) m)) > > (cons `fn fdecl))))) > > > On Jan 13, 8:51 am, HB <hubaghd...@gmail.com> wrote: > > > > Hey, > > > How much Clojure source code is complicated? > > > I'm not a programming Godfather but I would like to study Clojure > > > source code. > > > Could an intermediate programmer like me grasp the source 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 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 -~----------~----~----~----~------~----~------~--~---