[Moscow.pm] Про node.js

Andrei andrei.protasovitski на gmail.com
Чт Окт 18 01:44:38 PDT 2012


18 октября 2012 г., 8:33 пользователь ksvs <ksvs1996 на ymail.com> написал:

>
>
>   ------------------------------
> *From:* Orlovsky Alexander <nordicdyno на yandex.ru>
> *To:* Moscow.pm group <moscow-pm на pm.org>
> *Sent:* Wednesday, 17 October 2012, 19:39
> *Subject:* Re: [Moscow.pm] Про node.js
>
> Возможность манипулировать ссылками на функцию (Perl) и
> объектами-функциями (JS) – это немного разные вещи с точки зрения того как
> пишется и выглядит код.
> (Как это реализовано под капотом в данном случае не важно.)
>
> Т.е. в том же JS  можно не заниматься разыменовыванием ссылок и получить
> более естественно (на мой вкус, например) выглядящий код:
>
> function func (num) { return num+2 }
> var f = function () { return func };
> var s = function (cb) { return cb(5) }
> console.log( s(f()) )
>
> vs
> sub f { $_[0] + 2 };
> my $f = sub { \&f; };
> my $s = sub { $_[0]->(5) };
> print $s->($f->());
>
> в принципе в JS не все хорошо в плане boilrplate синтаксиса как видно
> выше, но в асинхронщине и функциональщине приятнее писать, как в первом
> варианте
>
>  Мне тут недавно про goto рассказывали и про прототипы...
> А если добавить
>
> sub call($@) { goto &{(shift)} }
>
> И переписать код выше как
>
>
> sub f { $_[0] + 2 };
> my $f = sub { \&f; };
> my $s = sub { call $_[0], 5 };
> print call $s, call $f;
>
> Так тоже работает. И выглядик красивше.
>
> Ура!!! Я уже крутой Perl программер!!!
>
>
Вызов функции довольно дорогостоящая операция. Разыменовывание ссылки тоже
тоже занимает время. Вызов функции по ссылке вдвойне дороже.

Конечно, это крутая техника, освоить её может не каждый, но на практике
приходится несколько раз подумать, прежде чем использовать что-то подобное.

-- 
Andrei Protasovitski
< andrei[dot]protasovitski[at]gmail[dot]com >
Diemen, Netherlands
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121018/bc3a5061/attachment.html>


Подробная информация о списке рассылки Moscow-pm