Среди людей, которые изучают языки программирования для жизни, «функциональный язык программирования» - довольно слабый термин. Существует твердое мнение, что:
- Любой язык, который называет себя функциональным, должен поддерживать первого класса , вложенные функции с лексическими правилами области видимости .
Значительное меньшинство также резервирует термин "функциональный язык" для языков, которые:
как в таких языках, как Agda, Clean, Coq и Haskell.
Кроме того, то, что считается функциональным языком программирования, часто зависит от намерения , то есть хотят ли дизайнеры хотеть, чтобы его назвали "функциональным".
Perl и Smalltalk - примеры языков, которые поддерживают первоклассные функции, но разработчики которых не называют их функциональными. Objective Caml является примером языка, который называется функциональным, даже если он имеет полную объектную систему с наследованием и всем прочим.
Языки, которые называются «функциональными», будут иметь тенденцию к и имеют такие функции, как следующие (взято из Определение точки функционального программирования ):
Чем больше конкретный язык программирования имеет синтаксис и конструкции, приспособленные для того, чтобы сделать перечисленные выше функции программирования простыми / безболезненными для выражения и реализации, тем больше вероятность, что кто-то назовет его «функциональным языком».