У меня такое ощущение, что общее восприятие, по крайней мере, в сообществе функционального программирования, заключается в том, что функциональное программирование полезно для создания DSL. Что делает его выше ООП в этой области?Почему функциональное программирование полезно для DSL? (Это?)
ответ
DSL могут быть реализованы как простые, конвейерные компиляторы. Многие языки FP традиционно хорошо оборудованы для такого рода вещей, и такие функции, как алгебраические типы данных и сопоставление образцов, являются наиболее полезными. Эти функции не имеют никакого отношения к функциональному программированию как таковому, но по историческим причинам они редко присутствуют на языках, отличных от FP.
Все становится еще интереснее, если вы хотите проверить свою реализацию компилятора. Для этого общие функциональные языки (например, Coq) не имеют себе равных. Нет никакого разумного способа сделать что-либо подобное для реализации компилятора OO.
С другой стороны, функциональные языки не обязательно являются наилучшим целевой для такого DSL компилятора (или хостом если это eDSL).
Существует также культура внедрения eDSL в качестве специальных переводчиков на языках FP, хотя я считаю этот подход наименее привлекательным.
- 1. Мета-программирование, для чего это полезно?
- 2. Функциональное программирование для Array.map()
- 3. Функциональное реактивное программирование AngularJS?
- 4. Javascript Функциональное программирование
- 5. Функциональное программирование для базовых алгоритмов
- 6. Почему синатра - это DSL?
- 7. Функциональное программирование: почему пара как базовый блок?
- 8. C# Функциональное программирование Lambda
- 9. Функциональное программирование в JavaScript
- 10. Функциональное программирование на LISP
- 11. Применяемое функциональное программирование
- 12. Функциональное программирование: функция AggregateUntil
- 13. Функциональное программирование, управляемое событиями
- 14. Функциональное программирование в JS
- 15. Функциональное программирование лямбда-выражений
- 16. Функциональное программирование: периметр многоугольника.
- 17. Функциональное программирование на C++
- 18. Функциональное программирование с Clojure
- 19. Чисто функциональное программирование
- 20. Функциональное программирование: сумма свойств
- 21. Функциональное программирование в R
- 22. Функциональное программирование + управление доменом
- 23. SML-Функциональное программирование
- 24. Функциональное программирование с Ruby
- 25. Функциональное программирование JS для n элементов заполняется
- 26. Функциональное программирование на C/C++?
- 27. Чисто функциональное программирование на android
- 28. Функциональное программирование и многоядерная архитектура
- 29. Multithreaded Функциональное программирование в Swift
- 30. Для любых проектов, использующих функциональное программирование?