> Josh Stern comments someone else comment about Ruby's first-class > objects: [snip] > I'd like to note that Ruby has Method class. You can check it's > workings from > > http://www.rubycentral.com/ref/ref_c_object.html#method > > - Aleksi Oh, I'm going to hate myself for this. A small, seemingly inconsequential aspect of Method is that it needs an Object to use. Sorry, this is bad. In general, not all functions are methods. Some problems do not require a context. Witness 'sort'. I am not changing the rules here -- I complained that Ruby does not have first-class functions. A method is not a function. A function does not have inherent scope (other than globlal/namespace scope). Does this make a difference? Perhaps not. But I don't need scope to sort a range, I just want to sort it. Some things have no scope. The distinction is important and relevant to my claim that Ruby does not have first-class functions (as distinct from, say, C++, which has first-class methods and first-class functions). It does redress the question as being "Ruby has no functions at all". What it comes down to is the fact that everything in Ruby is an Object. Now, in the 80's and 90's this seemed a Good Thing. Is this true? To quote Mr Stepanov: "To say that everything is an Object is to say nothing at all". I am being petty? Not if it means that people wonder about the efficacy of "function" versus "method". I will accept the critisism that I am being spiteful, only if it is also taken one can be both accurate and spiteful simultaneously. Would it be hard to introduce an uber-object that represents global scope? Probably not. It would change the landscape of the language however. Better, you could have a hierarchy of 'uber-scopes', and do namespaces properly. I say 'properly' because in C++ you cannot implicitly address your parent namespace. Christian.