Я люблю Haskell и ваши замечания относительно неэффективности лямбд ранят мои чувства!
18 октября 2012 г., 12:44 пользователь Andrei <[email protected]> написал: > > > 18 октября 2012 г., 8:33 пользователь ksvs <[email protected]> написал: > >> >> >> ________________________________ >> From: Orlovsky Alexander <[email protected]> >> To: Moscow.pm group <[email protected]> >> 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 > > -- > Moscow.pm mailing list > [email protected] | http://moscow.pm.org > -- С уважением, Александр Личный блог: http://eax.me/ Мой форум: http://it-talk.org/ Мой Twitter: http://twitter.com/afiskon -- Moscow.pm mailing list [email protected] | http://moscow.pm.org
