LINUX.ORG.RU

Re: Кто подскажет что из функционального есть в perl5?

Красиво. А еще что-нибудь есть?Например сопоставление с образцом. Интересно посмотреть на возможности perl в данной области.

anonymous ()

Re: Кто подскажет что из функционального есть в perl5?

странно, но я сегодня тоже заинтересовался функциональными возможностями перла :) Вот еще одну ссылку откопал: http://danpeng.livejournal.com/16713.html

phoenix ★★★★ ()

Re: Кто подскажет что из функционального есть в perl5?

Э? :)

http://perldoc.perl.org/perlfunc.html

Раздел "Functions new in perl5". Это имелось в виду?

Или вообще все обо всем? Вот список функций по категориям с кратким описанием http://perldoc.perl.org/index-functions-by-cat.html

Очень размытый вопрос.

roller ★★★ ()

Re: Кто подскажет что из функционального есть в perl5?

Вот еще из Холзнера про клозурики интересная заметка(жалко больше ничего такого там нет).
Создание функций на основе шаблонов
Замыкания можно использовать для создания шаблонов функций, позволяющих создавать и настраивать пользовательские функции в процессе работы сценария.
Рассмотрим пример. Мы будем использовать шаблон для создания трех новых функций — printHello, printHi и printGreetings. Они будут выводить, соответственно, строки «Hello», «hi» и «Greetings». Начнем с того, что запомним эти строки в массиве:
@gretings = ("Hello", "Hi", "Greetings");
Далее, мы выполним цикл foreach по элементам массива с использованием лексической переменной в качестве индекса (чтобы использовать замыкания, необходимы лексические переменные — см. предыдущий раздел). На каждой итерации цикла создается непоименованная функция, использующая очередной элемент массива @greetings, и запись таблицы символов (тип данных typeglob) для этой функции:
foreach my $term (@greetings) {
*{"print" . $term} = sub {print "$term\n"};
}
Теперь можно вызывать созданные на основе шаблона пользовательские функции printHello, printHi и printGreetings:
printHello();
printHi();
printGreetings();
Hello
Hi
Greetings
Так и работают шаблоны функций. Если бы мы просто запомнили ссылки на анонимные подпрограммы в подходящих скалярных переменных:
foreach my $term (@greetings) {
${"print" . $term} = sub {print "$term\n"};
}
то могли вызывать эти подпрограммы через разыменовывания ссылок, а не как «истинные» подпрограммы:
&$printHello();
&$printHi();
&$printGreetings();
Hello
Hi
Greetings

anonymous ()

Re: Кто подскажет что из функционального есть в perl5?

>> Э? :)

>"функциональный" как в "функциональных язык" :) из примера вроде достаточно ясно.

Тогда боюсь все плохо. Временами попадаются статьи, но что бы "много-и-в-одном-месте" пока не видел. Посмотрим предложенные книги.

roller ★★★ ()

Re: Кто подскажет что из функционального есть в perl5?

Ну Higher-Order Perl тебе уже посоветовали.

А так - перл вполне себе функциональный язык.

Лямбда - есть (

my $add = sub {$_[0] + $_[1]}; print $add->(1,2);

), замыкания есть. Даже map/grep встроенные есть.

А, да, еще есть List::Util, там много полезностей для обработки списков (max/min/first/reduce).

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.