Do you know Java? It'll be easier to explain if you do. In Java, everything is an Object. Object's are treated as references to a specific memory location which holds the actual data. So when you pass an Object to a method, you're only passing the method the memory location of that Object.
For performance reasons Java has primitives. It makes little sense to pass a memory-location of an integer to a method, when the memory- location itself takes up the same number of bits as an integer. So primitives are passed to methods directly by value. Unfortunately, most of the standard API is written around Objects. Vectors, Lists, Maps, all are collections of Objects. If you wish to put a primitive in a Vector, you must first create a Object that wraps around the primitive. ie. class Integer { int i; } This lets you use primitives with the standard API. The process of wrapping a primitive up into a object is called boxing. The reverse is called unboxing. And when Java does it automatically for you, it's called autoboxing. --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---