Hacker News new | ask | show | jobs
by masklinn 5041 days ago
> JavaScript and CoffeeScript don't separate the idea of a function and a method

Neither does Python, at definition time. All the difference is in the processing performed by the class constructor (`type`) when the class object is created. Before that, it's a bog-standard function.

> which is what allows you to use first-class functional combinators as decorators.

Which is exactly like Python, the original decorators[0][1] predate the syntactic extension by several versions, the original syntax for applying them was:

    def some_method(cls):
        pass
    some_method = classmethod(some_method)
And you could use the exact same syntax to define non-method functions (though not this decorator, of course, as it doesn't make sense for functions)

[0] http://docs.python.org/library/functions.html?highlight=clas...

[1] http://docs.python.org/library/functions.html?highlight=clas...