Я прекрасно знаю разницу между блоком и функцией. В контексте данного разговора это не принципиально, или я что-то не понял?<div>Но я так и не понял чего нет в Perl, что есть в JS.<br><br><div class="gmail_quote">17 октября 2012 г., 19:26 пользователь Akzhan Abdulin <span dir="ltr"><<a href="mailto:akzhan.abdulin@gmail.com" target="_blank">akzhan.abdulin@gmail.com</a>></span> написал:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Никита, блок и функция - разные вещи. Не стоит их путать. Что в Ruby, что в Perl. Хотя очень похожи (возможно преобразование).<div>

<br></div><div>Например, операторы return, next будут работать по-разному.<div><br></div><div>
Только в JavaScript нет явных блоков, а лишь функции, которые всегда являются замыканиями. Соответственно, поведение более жёстко прописано.</div><div><br></div><div>Именно поэтому блочный yield в Ruby сводится к обычному fn.call(this, arguments...) или проще, если ранее выполнен bind.</div>


<div><br></div><div>При этом yield позволяет передать набор параметров.</div><div><br></div><div>На деле не проверял, работает ли в Perl @_ правильно при передаче блока в функцию с прототипом &.</div><div><br><div class="gmail_quote">


17 октября 2012 г., 18:34 пользователь Nikita Zubkov <span dir="ltr"><<a href="mailto:nikzubkov@gmail.com" target="_blank">nikzubkov@gmail.com</a>></span> написал:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div class="h5">
17 октября 2012 г., 13:20 пользователь Akzhan Abdulin <span dir="ltr"><<a href="mailto:akzhan.abdulin@gmail.com" target="_blank">akzhan.abdulin@gmail.com</a>></span> написал:<br><div class="gmail_quote"><div>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Речь не о том yield, что в генераторах, хотя он уже включен в JavaScript 1.7 и ожидается позднее в стандарте ECMAScript.</blockquote></div><div>Да, речь не о том yield.</div><div><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>Речь о том, что в Perl является вызовом подпрограммы по её ссылке.</div></blockquote></div><div>Ну так в JS тоже самое. Где в JS что либо близкое по синтаксису к yield? И вообще в ruby yield всего лишь сахар над вызовом блока (читай функции). </div>




<div><br></div></div><div><div>-- <br>С уважением,<br>Никита Зубков<br>
</div></div><br></div></div><div class="im">--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></div></blockquote></div><br></div></div>
<br>--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" target="_blank">http://moscow.pm.org</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>С уважением,<br>Никита Зубков<br>
</div>