Здравствуйте, DarkGray, Вы писали:
DG>Императивные языки — это какие?
В которых ты явно прописываешь последовательность операций, "как решать задачу". В непререкаемом, повелительном (imperative) тоне

. Проще говоря, процедурные языки. Прошу прощения за заумную лексику.
В функциональном языке ты пишешь, "что" ты хочешь получить, а не "как". Ты даешь определения, а не пишешь алгоритмы. Почему функциональные языки особый случай: благодоря свойству "прозрачности по ссылкам". На практике это означает, что все методы должны быть константными (аналогия с С++), т. е. методы не могут изменять состояния объекта. Объект вместо изменения пересоздается заново. А посему, нет необходимости требовать замкнутость операций. Наверное. Хотя чОрт его знает.