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
-~----------~----~----~----~------~----~------~--~---

Reply via email to