[Moscow.pm] Про node.js

ksvs ksvs1996 на ymail.com
Ср Окт 17 23:33:19 PDT 2012





________________________________
 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 программер!!!
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20121018/000e204a/attachment-0001.html>


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