raja / cs.indiana.edu (Raja S.) writes: >I'm coming to Ruby with a Python & Common Lisp background. >1. is there a builtin way to print an array so that it looks like an array? > a=[1,2,3,4] > print??? a # should print [1,2,3,4] > Equivalently for hashes? > I'm looking for the equivalent array/hash printing behavior of Python. I answer to part of my earlier post I've come up with the following using Ruby's neat ability to extend the functionality of builtin types/classes: class Array def to_s () ans="" for i in (0...self.length-1) ans += self[i].to_s + ", " end ans += self[-1].to_s if (self.length>0) return "[" + ans + "]" end end I take it there is no pre-defined way then? Raja p.s. My first attempt was to use a sub-array rather than index over a range. class Array def to_s () ans="" for e in self[0..-2] ans += e.to_s + ", " end ans += self[-1].to_s if (self.length>0) return "[" + ans + "]" end end I suppose indexing over a range may be more efficient space wise than the copying involved in creating a sub array. Hence the earlier version may be preferable. But leaving that aside, self[0..-2] returns nil for an empty array and 'each' isn't defined on nil. One may have expected for e in self[0..-2] ... to work even for empty arrays. Caught me by surprise.