<div><div>I believe when we talk about lambda here, we don't exactly mean addressable anonymous functions :-)</div><div><br></div><div># python lambda</div><div>g = lambda x: x*x</div></div><div>g(8) # 64</div><div><br>
</div><div><div>// JS lambda</div></div><div>function lambda(exp) {</div><div>  var body = exp.split(":");</div><div>  return Function(body[0], "return " + body.slice(1).join(":"));</div><div>
}</div><div><br></div><div>var g = lambda("x: x*x");</div><div>g(8); // 64</div><div><a href="http://g.name">g.name</a>; // anonymous</div><div><br></div><div>Regards</div><div><br></div><div><div class="gmail_quote">
On Wed, Jan 11, 2012 at 7:29 PM, Allen Wirfs-Brock <span dir="ltr"><<a href="mailto:allen@wirfs-brock.com">allen@wirfs-brock.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><br><div><div><div class="h5"><div>On Jan 11, 2012, at 10:10 AM, John J Barton wrote:</div><br><blockquote type="cite">The blog post  <a href="http://yehudakatz.com/2012/01/10/javascript-needs-blocks/" target="_blank">http://yehudakatz.com/2012/01/10/javascript-needs-blocks/</a> makes the case for blocks that act like functions when passed as arguments but have loop-up rules more like nested blocks. <div>

<br></div><div>Of course these are called 'block lambdas', and I suggest that this is a problem. Given that very few programmers understand lambda calculus (and this will not change), the word 'lambda' is equivalent to "too difficult to understand".   </div>

<div><br></div><div>When I looked up lambda on <a href="http://en.wikipedia.org/wiki/Lambda" target="_blank">http://en.wikipedia.org/wiki/Lambda</a> I read</div><div><br></div><div><span style="line-height:19px;font-size:13px;font-family:sans-serif">  In </span><a href="http://en.wikipedia.org/wiki/Mathematical_logic" title="Mathematical logic" style="line-height:19px;color:rgb(11,0,128);font-size:13px;font-family:sans-serif;text-decoration:none;background-image:none" target="_blank">mathematical logic</a><span style="line-height:19px;font-size:13px;font-family:sans-serif"> and </span><a href="http://en.wikipedia.org/wiki/Computer_science" title="Computer science" style="line-height:19px;color:rgb(11,0,128);font-size:13px;font-family:sans-serif;text-decoration:none;background-image:none" target="_blank">computer science</a><span style="line-height:19px;font-size:13px;font-family:sans-serif">, lambda is used to introduce an </span><a href="http://en.wikipedia.org/wiki/Anonymous_function" title="Anonymous function" style="line-height:19px;color:rgb(11,0,128);font-size:13px;font-family:sans-serif;text-decoration:none;background-image:none" target="_blank">anonymous function</a><span style="line-height:19px;font-size:13px;font-family:sans-serif"> expressed with the concepts of </span><a href="http://en.wikipedia.org/wiki/Lambda_calculus" title="Lambda calculus" style="line-height:19px;color:rgb(11,0,128);font-size:13px;font-family:sans-serif;text-decoration:none;background-image:none" target="_blank">lambda calculus</a><span style="line-height:19px;font-size:13px;font-family:sans-serif">.</span></div>

<div><font face="sans-serif"><span style="line-height:19px"><br></span></font></div><div><font face="sans-serif"><span style="line-height:19px">and then "Oh that is what they meant with all that 'block-lambda' stuff".</span></font></div>

<div><font face="sans-serif"><span style="line-height:19px"><br></span></font></div><div><font face="sans-serif"><span style="line-height:19px">If the discussion here were on a new ES feature "anonymous methods", then I guess many more developers would be interested. If this feature had the properties outlined in the blog post, then I think many developers would understand the value of this potential feature. As it is I guess they stop reading as soon as they see the word 'lambda'.</span></font></div>
</blockquote><div><br></div></div></div><div>Except that they aren't "methods" (a function that is associated with an object).</div><div><br></div><div>If you want a name without "lambda" you might consider "block function" or "functional block"  indicating that we are talking about code blocks that may be passed and invoked as function values.  </div>
<div><br></div><div>Allen</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><br><blockquote type="cite">
<div><font face="sans-serif"><span style="line-height:19px"><br></span></font></div><div><font face="sans-serif"><span style="line-height:19px">jjb</span></font></div><div><font face="sans-serif"><span style="line-height:19px"><br>

</span></font></div><div><font face="sans-serif"><span style="line-height:19px"><br></span></font></div>
_______________________________________________<br>es-discuss mailing list<br><a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br><a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
</blockquote></div><br></div><br>_______________________________________________<br>
es-discuss mailing list<br>
<a href="mailto:es-discuss@mozilla.org">es-discuss@mozilla.org</a><br>
<a href="https://mail.mozilla.org/listinfo/es-discuss" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br>
<br></blockquote></div><br></div>