Re:Method Combinators in CoffeeScript
by raganwald on Monday August 27, 2012 @04:05PM
(#4440569)
You're speaking to the first part of my claim, but not the second, namely that JavaScript and CoffeeScript don't separate the idea of a function and a method, which is what allows you to use first-class functional combinators as decorators.
[ Parent
| on HN ]
> 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...