wow! So if it is called with 1 argument, then the body of the function is:
(factorial n 1) But if it is called with 2 arguments then the body of the function is: (if (= n 0) acc (recur (dec n) (* acc n))) Is this a standard feature of lisp? Sorry I am very noobish. thx! On Jan 25, 9:29 am, Mike DeLaurentis <delauren...@gmail.com> wrote: > That's defining a function factorial that can be called with either one or > two arguments. When called with one argument, it immediately calls itself > with two arguments. So the (factorial n 1) call provides acc with an > initial value of 1. The ([n] and ([n acc] lines are the declarations of the > parameter lists for the function. Does that make sense? > > On Sun, Jan 24, 2010 at 7:23 PM, Glen Rubin <rubing...@gmail.com> wrote: > > I am trying to learn clojure by learning the programing by example > > open wiki book. For an excercise demonstrating iteration they give > > the following example: > > > (defn factorial > > ([n] > > (factorial n 1)) > > ([n acc] > > (if (= n 0) acc > > (recur (dec n) (* acc n))))) > > > first I don't understand how acc ever gets an initial value? > > > also the arguments to the function are a list and not a vector? > > > why is the vector [n acc] on a line by itself? > > > This function is very confusing to me!! thanks for any help!! > > > -- > > You received this message because you are subscribed to the Google > > Groups "Clojure" group.> To post to this group, send email > > tocloj...@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<clojure%2bunsubscr...@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 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