<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Jul 11, 2012, at 10:41 AM, Irakli Gozalishvili wrote:</div><blockquote type="cite"><div><span style="font-size: 14px;">If `object.foo` is an arrow function it has no way of knowing weather it was invoked as a function or a method. Neither it get's reference to an `object`. This makes </span><span style="font-size: 14px; ">composition between</span><span style="font-size: 14px; "> functional & OO styles components hard. </span></div><div></div></blockquote></div><div><br></div><div><div>On Wednesday, 2012-07-11 at 10:23 , Irakli Gozalishvili wrote:</div><div></div><blockquote type="cite"><div>It is true that on could wrap arrow function into vintage one in order to reuse it as a method, but that is a poor mans workaround. As of motivation, all I really want is to have a synergy of different paradigms that are in the language.</div><div><br></div><div>What I really mean by that is, if one writes in a functional style:</div><div>That should be reusable in OO code without any changes or wrappers:</div></blockquote></div><div><br></div><div>I agree. In general, having compatible semantics allows you to manipulate code programmatically instead of writing wrapper code by hand. The more inter-compatible language concepts are, the less mechanical busy work you have to write.</div><div><div><br></div><div>Methods and functions are both "callable bundles of procedural logic", so having 2 incompatible semantics for them seems silly to me.</div><div><br></div><div>There is also precedent for this approach: Python, and I think Lua, do methods this way. It cleverly side-steps the need to have a different semantic for functions and methods.</div></div><div><br></div><div>Best,</div><div>-Gordon</div></body></html>