Я пытаюсь выучить чистый функциональный язык программирования, такой как Haskell, как я из фона Perl, и прочитать, что Perl может также реализовывать методы функционального программирования. Поэтому было задано несколько вопросов:
Внедрение функционального программирования в Perl
Ответ 1
Считать Perl более высокого порядка. Вы можете купить его или скачать бесплатно. Он дает представление даже опытным программистам на Perl.
Ответ 2
perl6 все еще работает, поэтому даже если perl6 значительно улучшил поддержку функционального программирования на уровне языка (см. perlgeek.de on currying in perl6, например), вы, вероятно, захотите начать сейчас с perl5, чтобы вы могли работать с тем, что там было. Я рекомендую смотреть в cpan для поддержки библиотеки более высокого уровня... Array:: Utils и другие (там много!)
Ответ 3
Функциональное программирование - это просто программирование, вы можете сделать это на любом языке. Если вам нравится, как выкладывается API Haskell, вам может понравиться мой модуль Data:: Monad, который предоставляет роли Moose для различных классов Haskell, включая Monad. (В отличие от Haskell, однако, в моей Монаде нет "неудачи", и все Монады - это Функторы.)
Здесь приведен пример реализации различных типов в контексте структуры данных, которая обрабатывает успех или сбой (например, Control.Monad.Error):
http://github.com/jrockway/data-monad/blob/master/t/error.t
Обратите внимание, что у него есть возможность конвертировать обычные вычисления Perl, которые могут завершиться с исключением из чистой процедуры, которую вы можете использовать bind
для других процедур. Это позволяет "регулярному Perl" работать внутри программы, предназначенной для более функционального потока управления.
Ответ 4
Вероятно, немного поздно для вечеринки, но эта маленькая книга - очень хороший пример внедрения технологий функционального программирования в Perl: http://billhails.net/Book/
Автор строит интерпретатор схемы в perl 5 с нуля (и BTW - это чистое золото).