Вдохновленный немного: https://stackoverflow.com/info/30977789/why-is-c-not-a-functional-programming-language
Я нашел: Более высокий порядок Perl
Это заставило меня задуматься о том, что Perl является функциональным языком программирования. Теперь я ценю, что функциональное программирование - это метод (очень похожий на объектно-ориентированный).
Однако я нашел список что делает функциональный язык программирования:
- Функции первого класса
- Функции более высокого порядка
- Лексические замыкания
- Соответствие шаблону
- Одиночное задание
- Lazy Evaluation
- Коллекция мусора
- Тип вывода
- Оптимизация вызовов по времени
- Описание списка
- Монадические эффекты
Теперь некоторые из них я хорошо знаю:
Сбор мусора, например, является подсчетом ссылок на Perl и освобождением памяти, когда это больше не требуется.
Лексические замыкания являются частью FAQ: Что такое закрытие? - там, вероятно, есть лучшая статья: http://www.perl.com/pub/2002/05/29/closure.html
Но я немного запутался в некоторых из них - List Comprehensions, например, я думаю, что ссылаясь на map
/grep
(List::Util
и reduce
?)
Я могу помочь мне заполнить пробелы здесь? Что из перечисленного может сделать Perl легко (и есть ли простой пример), и есть ли примеры, где он падает?