On Jun 18, 8:43 am, Craig Andera <cand...@wangdera.com> wrote: > > I'm a little confused over when to use a var vs. a ref vs. an agent > > vs. an atom. For writing small (<200 lines) single-threaded programs > > when do I want to use each one? > > In addition to the great answers you got here, you could have a look > at my screencast series on vars, refs, agents, and atoms: > > http://link.pluralsight.com/clojure > > Ignore the (unfortunate) prominence of the Silverlight player - the > "mobile" button will give you downloads in all sorts of formats.
All these links and discussions have been helpful, but especially that screencast. I've only watched the first two and it has cleared up many misconceptions I had. Do Clojure programs need a main method? The reason I'm asking is because the default netbeans template writes something similar to this: (defn -main [ ] stuff blah-blah) Which proceeds to evaluate stuff blah-blah. From experimentation it seems I don't need a main method to evaluate expression. I can have a program that is only the namespace delcaration and (println "hi"), and it runs. It does give me an exception, but it runs. Is this exception a bad thing? Is using -main a matter of convention? Is -main some sort of key word, or special phrase? If so why is it -main, and not main? It seems counterintuitive to define a function just like any other function using defn, but this function happens to special. What is the value of a do block? Specifically in Craig's screencast on Vars he types up: (do (binding [foo "Keith"] (with-new-thread (fn [] (print-foo "background: "))) (print-foo "foreground1 ")) (print-foo "foreground2: ")) If this was written without the do how does it affect the program?: (binding [foo "Keith"] (with-new-thread (fn (print-foo "background: "))) (print-foo "foreground1: ")) (print-foo "foreground2: ") It might be easier to see this in his video, which would be at 17:13. -- 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