Hi Yaron, You've slightly misunderstood my suggestion. I hope this will shed some reasoning on it:
In OO, what you are effectively doing is this: The Object represents the "environment" under which you do your calculations. The "environment" object is created by your constructor. Once this "environment" has been created, you can use it to do calculations using "foo.tax_deductible_expenses(1)". My example is meant to capture this style of programming. (Whether this style is appropriate is up to you to decide.) The "environment" is represented by a map. You can write a function that creates an "environment" just like how you can write a constructor to create an environment object in Java. eg. new-environment( ... ) Once this environment has been created, you may use it to do calculations using "(in-environment foo (tax-deductible-expenses 1))" The in-environment macro is not meant to contain any logic. It is solely meant to save you some typing. Hope that's more clear. -Patrick -- 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