>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 want to be familiar with a language design in general and how it integrates with Java Platform.
>I'm also not sure what you mean by 'what is the best place to start reading. What I mean is which file in the source code I have to read in order to start mining. This depends on why I'm reading the source code, right? On Jan 13, 10:19 am, bOR_ <boris.sch...@gmail.com> wrote: > 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/... > > 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 -~----------~----~----~----~------~----~------~--~---